|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你通过从书的数量和开发周期及运行速度来证明:net网页编程和ruby要比java简单。
在进进java平台的线程对象之前,基于基本篇(一)的一些成绩,我先拔出两个基础观点。
[线程的并发与并行]
在单CPU体系中,体系调剂在某一时候只能让一个线程运转,固然这类调试机制有多种情势(年夜多半是工夫片轮巡为主),但不管怎样,要经由过程不休切换必要运转的线程让其运转的体例就叫并发(concurrent)。而在多CPU体系中,可让两个以上的线程同时运转,这类能够同时让两个以上线程同时运转的体例叫做并行(parallel)。
在下面包含今后的一切叙述中,请列位伴侣体谅,我没法用最正确的词语来界说储如并发和并行这类术语,但我以我的履历能普通地告知人人它是怎样一回事,假如您看到我说的一些"尺度"文档上说的纷歧样,只需意义分歧,那您就不要挑刺了。
[JAVA线程对象]
如今我们来入手下手考查JAVA中线程对象。
在JAVA中,要入手下手一个线程,有两种体例。一是间接挪用Thread实例的start()办法,二是
将Runable实例传给一个Thread实例然后挪用它的start()办法。
在后面已说过,线程对象和线程是两个完整分歧的观点。这里我们再次深切一下,天生一个线程的实例,其实不代表启动了线程。而启动线程是说在某个线程对象上启动了该实例对应的线程,当该线程停止后,其实不会就当即消散。
关于从良多书本上能够看到的基本常识我就不必多说了。既然是基本常识,我也侧重于从一般文档上读不到的内容。以是本节我重点要说的是两种线程对象发生线程体例的区分。
classMyThreadextendsThread{
publicintx=0;
publicvoidrun(){
for(inti=0;i<100;i++){
try{
Thread.sleep(10);
}catch(Exceptione){}
System.out.println(x++);
}
}
}
假如我们天生MyThread的一个实例,然后挪用它的start()办法,那末就发生了这个实例对应的线程:
publicclassTest{
publicstaticvoidmain(String[]args)throwsException{
MyThreadmt=newMyThread();
mt.start();
}
}
不必说,终极会打印出0到99,如今我们略微玩一点名堂:
publicclassTest{
publicstaticvoidmain(String[]args)throwsException{
MyThreadmt=newMyThread();
mt.start();
System.out.println(101);
}
}
也不必说,在基本篇(一)中我们晓得因为单CPU的缘故原由,一样平常会先打印101,然后打印0到99。不外我们能够把持线程让它按我们的意义来运转:
publicclassTest{
publicstaticvoidmain(String[]args)throwsException{
MyThreadmt=newMyThread();
mt.start();
mt.join();
System.out.println(101);
}
}
<p>
JAVA学习必须明确这是一项投资,对于大多数的人来说,学习JAVA是为了就业,还有就是刚走向工作位置的朋友想尽快赶上工作的节奏。 |
|