java多线程编程(一)-进程,线程和多线程并发
一:进程和线程
进程:是操作系统分配资源的独立单位,程序执行时发生的活动,如QQ.exe,eclipse.exe等。
线程:是操作系统进行调度的基本单位,是进程中独立运行的子任务,如运行QQ后,可进行文件上传下载,文字聊天,语音通话等。
二:多线程并发
QQ运行时,上传文件的时候需要文字聊天,假设这两个线程都需要访问QQ进程用户信息资源,操作系统(单核)则会先暂停文件上传对用户信息资源的使用,把用户信息资源分配给实时性和优先级较高的文字聊天,但访问结束后马上把资源切换给文件上传,这个调度过程时间是非常短的几乎感觉不到,因而感觉上传文件和文字聊天是同时进行的,这个过程就是多线程的并发,即操作系统合理的调度资源给一个进程中的多个线程的过程。
值得注意的是,并非所有的进程都需要设计为多线程,CPU密集型任务比如解压文件需要长时间占用CPU资源,如果设计为多线程,资源调度的切换的花销反而会导致性能下降。因此应根据具体任务合理设计,但一般都应考虑进行多线程并发设计。
小语:不正之处欢迎交流指正🍺,转载请注明原文地址💬