thread多线程循环打印输出
代码实现:
/**
* 本线程类的功能是进行循环输出操作
* 所有的线程与进程是一样的,都必须轮流去抢占资源,多线程执行应该是多个线程彼此交替执行
* 也就是说如果直接调用了run()方法,那么并不能启动多线程
* 多线程启动的唯一方式就是thread类中的start方法:public void start()(调用此方法执行的方法体是run方法定义的)
*/
/**
* 如果某一个线程对象重复进行了启动,那么就会抛出此异常IllegalThreadStateException
*
* 使用Thread类的start()方法不仅仅要启动多线程的执行代码,还要去根据不同的操作系统进行资源的分配。
*/
class MyThread extends Thread{
private String name;
public MyThread(String name){
this.name = name;
}
@Override
public void run() {//复写run方法,作为线程的主体操作方法
for(int x = 0 ; x < 200 ; x++){
System.out.println(this.name + "--> " + x);
}
}
}
public class TestDemo {//主类
public static void main(String[] args) {
MyThread my1 = new MyThread("线程A");
MyThread my2 = new MyThread("线程B");
MyThread my3 = new MyThread("线程C");
// my1.run();
// my2.run();
// my3.run();
//my1.start();//此时每一个线程对象交替执行
my1.start();
my2.start();
my3.start();
}
}
运行结果(部分):
线程B--> 0
线程B--> 1
线程B--> 2
线程A--> 0
线程A--> 1
线程C--> 0
线程A--> 2
线程A--> 3
线程A--> 4
线程A--> 5
线程B--> 3
线程A--> 6
线程C--> 1
线程A--> 7
线程A--> 8
线程A--> 9
线程A--> 10
📢注意事项:
不能同一个对象,启动2个start方法,会抛异常,题主开始就犯了这个错误,故注释掉多余的my1线程就OK了

浙公网安备 33010602011771号