线程越多越好吗 线程( 三 )


阻塞/
NonRunnable:线程处于阻塞/NonRunnable状态,这是由两种可能性造成的:要么是因挂起而暂停的,要么是由于某些原因而阻塞的,例如包括等待IO请求的完成 。
退出:线程转到退出状态,这有两种可能性,要么是run方法执行结束,要么是调用了stop方法 。
最后一个概念就是线程的优先级,线程可以设定优先级,高优先级的线程可以安排在低优先级线程之前完成 。一个应用程序可以通过使用线程中的方法setPriority(int),来设置线程的优先级大小 。
什么是线程?1.1 什么是线程
线程是操作系统能够进行运算调度的基本单位 。它被包含在进程之中,是进程中的实际运作单位 。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务 。和进程类似,一个线程也有就绪、运行、阻塞三种基本转状态 。
线程是处理机的独立调度单位,多个线程可以并发执行 。每个线程都应有一个唯一的标示符和线程控制块 。线程控制块记录了线程执行的寄存器和栈等现场状态 。
1.2 时间片
时间片是分时操作系统分配给每个正在运行的进程微观上的一段CPU时间,时间片的大小对系统的性能影响很大 。
如果时间片足够大,以至于所有进程都能在一个时间片内执行完毕,则时间片轮转调度算法就退化为先来先服务调度算发 。如果时间片很小,那么处理机将在进程间过于频繁切换,使处理机的开销增大,而真正用于处理用户作业的时间将减少,因此时间片的大小应选择适当 。
1.3 线程安全
线程不持有资源,但是同一进程中的所有线程可以共享进程的资源,所以说我们遇到的大部分线程的问题基本是因为共享资源引起的 。
也就是说,当多个线程同时访问一块共享资源(某一块内存),因为时序性问题,会导致数据错乱,这就是线程不安全 。
1.4 同步、异步
同步:在发出一个同步调用时,在没有得到结果之前,该调用就不返回 。
异步:在发出一个异步调用后,调用者不会立刻得到结果,该调用就返回了 。
1.5 并发,并行
并发是同一个时间段内,几个作业都在同一个CPU上运行,但任意一个时刻点上只有一个作业在处理机上运行 。
并行是同一个时间段内,几个作业在几个CPU上运行,任意一个时刻点上,有多个作业在同时运行,并且多个作业之间互不干扰

秒懂生活扩展阅读