j2se相比较cpp更早引入了标准库的多线程,cpp在c++11新标准中引入,放在了头文件Thread.h中,其使用也和j2se中Thread类的使用有很大的区别。
jdk封装了Thread类,Thread类的构造函数之一为Thread(Runnable target),Runnable target是一个接口,只封装了run()方法。也就是说Thread只能看到参数对象的run方法。实现Runnable target只需重写这个方法即可,而run方法中的内容就是线程将要执行的内容,也就是说run规定了当某类被当作一个新的线程被执行的时候将要执行哪些代码。Thread.start()会开启run中的代码。下面举一个简单的小例子。
package ttt;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
import java.io.Serializable;
class boy1 implements Runnable{
String name;
public boy1(String name){
this.name=name;
}
public void run() {
for(int i=0;i<500;i++){
System.out.println(i+" **********************************************************************");
}
}
}
public class testtt6 {
public static void main(String[] args) {
boy1 b1=new boy1("nio");
Thread t1=new Thread(b1);
t1.start();
for(int i=0;i<500;i++){//t1和后面的代码会并行进行。
System.out.println(i+" tom");
}
}
}
"*******************"和"Tom"将会交替的被输出。