多线程编程原理(多线程编程提高性能的原理)
本文目录
多线程编程提高性能的原理
1.一部分用户界面(UI)程序(如Windows窗口程序)是以用户操作驱动的,程序的主线程必须不间断地地等待和响应用户操作,也就是说不是在等待用户输入就是在处理用户输入。这时如果有个运算需要长时间持续执行,假如让主线程执行它,执行时间内就无法响应用户操作。可以为它创建一个独立的线程,它独立工作,不受用户操作影响,而主线程也能继续快速响应用户操作;2.服务器需要并行处理多个客户端输入;3.大规模运算通过同时占用多个CPU核心提高运算速度;4.程序有运算,同时还需要与一个或多个IO较慢的输入输出设备进行数据交换。 打个比方,有些复杂的、系统性的任务就象是人体一样,需要并行的做许多工作,例如,人需要同时呼吸,血液循环,消化食物,而不是先呼吸,然后血液循环,再消化食物。这样的程序就需要用多线程,以有效的使用处理器和用户的时间。
为什么要使用多线程编程线程同步的方法主要有哪些
多线程就象是人体一样,一直在并行的做许多工作,例如,人可以同时呼吸,血液循环,消化食物的。多线程可以将一个程序划分成多个任务,他们彼此独立的工作,以方便有效的使用处理器和用户的时间.这种比喻精辟,只要我们的机器资源够用,就要尽量提高程序的执行速度,这样能让用户感到舒服。线程同步的方法:wait():使一个线程处于等待状态,并且释放所持有的对象的lock。sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。
更多文章:

messagebox什么意思(vfp,请问=messagebox与messagebox的区别)
2025年2月25日 05:20

hurts和hurt的区别(hurt 和 hurts 的用法 请详细解释)
2025年3月13日 15:50

串口通信协议有哪些(通讯协议的方式有哪几种rs485通讯基于什么原理)
2025年2月9日 12:00

sql安装教程2012(怎么安装sql server 2012)
2025年3月22日 09:00

好用的java编程开发软件(学习JAVA的开发软件用什么好)
2025年3月8日 15:10

java常量池在方法区还是堆(java中的String常量是存放在栈中还是堆中)
2025年2月23日 02:10

anticipatory(anticipatory在语法中是什么意思)
2025年3月6日 15:20

使命召唤ol(codol)体验服怎么进去!?codol算不算动视暴雪
2025年3月2日 04:50

command c(苹果电脑command+c复制粘贴不了)
2025年2月14日 22:30

html源代码包括(程序员必须知道的HTML常用代码有哪些)
2025年3月17日 17:00