如何创建和启动一个线程?

CSDN专家精选,微信开发学习路线大有看头!【博乐】点评美文,得C币【脑洞趴】iOS开发前沿与Swift探秘Swift教程大汇总

如何创建和启动一个线程?

分类:

执行结果:阿三 :0李四 :0阿三 :1李四 :1阿三 :2李四 :2阿三 :3阿三 :4李四 :3李四 :4Process finished with exit code 0对于上面的多线程程序代码来说,输出的结果是不确定的。其中的一条语句for(long k= 0; k <100000000;k++);是用来模拟一个非常耗时的操作的。五、一些常见问题1、线程的名字,一个运行中的线程总是有名字的,名字有两个来源,一个是虚拟机自己给的名字,一个是你自己的定的名字。在没有指定线程名字的情况下,虚拟机总会为线程指定名字,并且主线程的名字总是mian,非主线程的名字不确定。2、线程都可以设置名字,也可以获取线程的名字,连主线程也不例外。3、获取当前线程的对象的方法是:Thread.currentThread();4、在上面的代码中,只能保证:每个线程都将启动,每个线程都将运行直到完成。一系列线程以某种顺序启动并不意味着将按该顺序执行。对于任何一组启动的线程来说,调度程序不能保证其执行次序,持续时间也无法保证。5、当线程目标run()方法结束时该线程完成。6、一旦线程启动,它就永远不能再重新启动。只有一个新的线程可以被启动,,并且只能一次。一个可运行的线程或死线程可以被重新启动。7、线程的调度是JVM的一部分,在一个CPU的机器上上,实际上一次只能运行一个线程。一次只有一个线程栈执行。JVM线程调度程序决定实际运行哪个处于可运行状态的线程。众多可运行线程中的某一个会被选中做为当前线程。可运行线程被选择运行的顺序是没有保障的。8、尽管通常采用队列形式,但这是没有保障的。队列形式是指当一个线程完成“一轮”时,它移到可运行队列的尾部等待,直到它最终排队到该队列的前端为止,它才能被再次选中。事实上,我们把它称为可运行池而不是一个可运行队列,目的是帮助认识线程并不都是以某种有保障的顺序排列唱呢个一个队列的事实。9、尽管我们没有无法控制线程调度程序,但可以通过别的方式来影响线程调度的方式。

原文转自:编程技术

版权声明:本文为博主原创文章,未经博主允许不得转载。

我想一个人旅行,背上简单的行囊,踏上行程,

如何创建和启动一个线程?

相关文章:

你感兴趣的文章:

标签云: