多线程简介 男娘i 2021-12-12 01:15 218阅读 0赞 ## ![loading.gif][]1.1 **多线程介绍** ## 1,、进程:进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能。 2、线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。 简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程 3、什么是多线程呢?即就是一个程序中有多个线程在同时执行。 4、单线程程序:即,若有多个任务只能依次执行。当上一个任务执行结束后,下一个任务开始执行。如,去网吧上网,网吧只能让一个人上网,当这个人下机后,下一个人才能上网。 5、多线程程序:即,若有多个任务可以同时执行。如,去网吧上网,网吧能够让多个人同时上网。 ## 1.2 **程序运行原理** ## l 分时调度 所有线程轮流使用 CPU 的使用权,平均分配每个线程占用 CPU 的时间。 l 抢占式调度 优先让优先级高的线程使用 CPU,如果线程的优先级相同,那么会随机选择一个(线程随机性),Java使用的为抢占式调度。 运行原理: 同一时间内,CPU只能处理1条线程,只有1条线程在工作(执行);多线程并发(同时)执行,其实是CPU快速地在多条线程之间调度(切换)。如果CPU调度线程的时间足够快,就造成了多线程并发执行的假象。 如果线程非常非常多,会发生什么情况? CPU会在N多线程之间调度,CPU会类似,消耗大量的CPU资源;每条线程被调度执行的频次会较低(线程的执行效率减低)。 ## **3、多线程的优缺点:** ## * 优点:能适当提高程序的执行效率;能适当提高资源利用率(CPU、内存利用率)。 * 缺点:开启线程需要占用一定的内存空间(默认情况下,主线程占用1M,子线程占用512KB),如果开启大量的线程,会占用大量的内存空间,降低程序的性能;线程越多,CPU在调度线程上的开销就越大;程序设计更加复杂,例如线程之间的通信、多线程的数据共享。 ## **4、Tehrad类:** ## **![1639932-20190627162715963-2080799383.png][]** ![1639932-20190627162750516-729430588.png][] ![1639932-20190627162804447-1550002979.png][] ## ** ** ## ## ** ** ## # # 转载于:https://www.cnblogs.com/-lwl/p/11097916.html [loading.gif]: /images/20211211/b83da97fa80449f6ab9b8f4bd5ce26aa.png [1639932-20190627162715963-2080799383.png]: /images/20211211/7069e07020c54f63a2dc94393b284ff9.png [1639932-20190627162750516-729430588.png]: /images/20211211/ddbdd9730e8742539478651974f8a062.png [1639932-20190627162804447-1550002979.png]: /images/20211211/8ca732292e0541dca46af1c888780919.png
还没有评论,来说两句吧...