都可以设置名字,也可以获取线程的名字,连主线程也不例外。3、获取当前线程的对象的方法是:Threadcurre
tThread;
f4、在上面的代码中,只能保证:每个线程都将启动,每个线程都将运行直到完成。一系列线程以某种顺序启动并不意味着将按该顺序执行。对于任何一组启动的线程来说,调度程序不能保证其执行次序,持续时间也无法保证。5、当线程目标ru
方法结束时该线程完成。6、一旦线程启动,它就永远不能再重新启动。只有一个新的线程可以被启动,并且只能一次。一个可运行的线程或死线程可以被重新启动。7、线程的调度是JVM的一部分,在一个CPU的机器上上,实际上一次只能运行一个线程。一次只有一个线程栈执行。JVM线程调度程序决定实际运行哪个处于可运行状态的线程。众多可运行线程中的某一个会被选中做为当前线程。可运行线程被选择运行的顺序是没有保障的。8、尽管通常采用队列形式,但这是没有保障的。队列形式是指当一个线程完成“一轮”时,它移到可运行队列的尾部等待,直到它最终排队到该队列的前端为止,它才能被再次选中。事实上,我们把它称为可运行池而不是一个可运行队列,目的是帮助认识线程并不都是以某种有保障的顺序排列唱呢个一个队列的事实。9、尽管我们没有无法控制线程调度程序,但可以通过别的方式来影响线程调度的方式。
线程:Java线程:线程栈模型与线程的变量
SCJP5学习笔记
要理解线程调度的原理,以及线程执行过程,必须理解线程栈模型。线程栈是指某时刻时内存中线程调度的栈信息,当前调用的方法总是位于栈顶。线程栈的内容是随着程序的运行动态变化的,因此研究线程栈必须选择一个运行的时刻(实际上指代码运行到什么地方。下面通过一个示例性的代码说明线程(调用)栈的变化过程。
f这幅图描述在代码执行到两个不同时刻1、2时候,虚拟机线程调用栈示意图。当程序执行到tstart时候,程序多出一个分支(增加了一个调用栈B),这样,栈A、栈B并行执行。从这里就可以看出方法调用和线程启动的区别了。线程:Java线程:线程状态的转换
SCJP5学习笔记
一、线程状态线程的状态转换是线程控制的基础。线程状态总的可分为五大状态:分别是生、死、可运行、运行、等待阻塞。用一个图来描述如下:
f1、新状态:线程对象已经创建,还没有在其上调用start方法。2、可运行状态:当线程有资格运行,但调度程序还没有把它选定为运行线程时线程所处的状态。当start方法调用时,线程首先进入可运行状态。在线程r