返回

Java编程思想

关灯
护眼
第25章(1 / 12)
强烈推荐: 回想当年和死党的美女老婆一起看毛片的往事 熟女圈 天上掉下个奇王妃 绝对是个梦 父亲情人 养成爱情 征服女人的武器 艾滋女生日记 泛泛之妖(1V1)

1为几何形状添加色rializestaticstate和de色rializestaticstate。jav,为ฦ了预:他慷慨地为我前๩几年的网上授课了9eb

通常,使你能以礼貌的方แ式告知客户端程序员某个ฐ方法可能会抛出的

而程序库通常并不与源代码一起布。我们必须这样,

来,run被写成无限循环的形,这就,你只需专注于你想让类库做些什么,

着在语言中添加了新的数据类型。因为ฦjaທva编译器会留意类库的使用方式——确保正确的

服务器。这是无价的辅助学习๤手段。

感谢genkiyookaທ和他的同事digigaທmi,

bufferedreader=ne9bufferedreader

system色ter肉,并保证其方แ法被正确调用,因此,除非有某个条件使得run终止,

否则它将永远运行下去在本章后面你将看到เ如何安全地通知线程终止。thread类的staທrt方แ法将为线程执

行特殊的初始。

你可以看到在main里创น建并运行了一些线程,然后调用run方法。所以整个步骤是:在构造器中调用了start方法来配,先调用构造器来构造对

象,然后由á线程执行机制调用run。如

果你不调用start在后面的例子你将看到เ,你不必在构造器里调用start,线

程永远不会启动。

因为ฦ线程调度机制的行为不是确定性的,所以每次运行该程序都会产生不同的输出结果。

实际上,你要是在不同的jdk版本下运行这个ฐ简单的程序,就会现程序输出的差异非常大。

比如,以前๩版本的jdk经常都是不切片时间的,所以线程1可能先循环执行完毕,然后是

线程2完成其所有循环,如此下去。这样的做法除了启动这些线程开销更加昂贵以外,在

实质上,与调用一个子程序然后马上完成该子程序所有循环的做法类似。用jdk1้4๒你能

得到与simplethreadjava类似的输出,这表明了调度器执行了更合适的时间切片行为,

每个线程看起来都得到了有秩序的服务。总的说来,jdk这种行为上的变化并没有被sun所

提到เ,所以你不能ม对线程的行为作任何假设。应付这类问题๤最好的办法就是在编写线程代

码时尽可能保守些。

当在main中创建若干个ฐthread对象的时候,并没有获得它们中ณ任何一个的引用。对于

普通的对象,这会使它成为ฦ垃圾回收器要回收的目标,但对于thread对象就不会了。每个ฐ

thread对象需要“注册”自己,所以实际上在某个地方存在着对它的引用,垃圾收集器只有

在线程离开了run并且死亡之后才能把它清理掉。

让步

如果你知道run方法中已经完成了所需的工作,你可以给线程调度机制一个暗示ิ:你的

工作已经做得差不多了,可以让别的线程使用处理器了。这个暗示ิ将通过调用yield

方法的形式来作出。不过这只是一个暗示ิ,没有任何机制保证它将会被采纳。

我们可以修改前面的例子,在每次循环之ใ后调用yield。

:๘9gthreaທdjava

suggesting9hento9itchthreads9ithyield

importuceeckelsimpletest;

publi9๗gthreadextendsthreaທd{

privatestaທti9๗e9test;

privateint9๗=5;

privatestati9t=๡0;

publi9๗gthread{

super""+ใ++thread9t;

start;

}

pubຘli9g{

return"ิ#ี"+

书签 上一章 目录 下一章 书架s
推荐阅读: 异世大领主txt 总裁的宝贝儿子 穿越农家媳 小说 古时候的传说 花总会开下一句 穿越之极品农家全文免费下载 秦汉穿越小说医圣 大清厚黑学福晋 巫警的都市生活 斩玄龟补天柱