2021-03-11

/**

  • 多线程的创建,方式一:继承于thread类
  •          1.创建一个继承于thread类的子类
    
  •          2.重写thread类的run()-->将此线程执行的操作声明在run()中
    
  •          3.创建thread类的子类的对象
    
  •          4.通过此对象调用start()
    
  •     **例子:遍历100以内的所有偶数**
    

*/
// 1.创建一个继承于thread类的子类
class MyThread extends Thread{
// 2.重写thread类的run()
@Override
public void run() {
for(int i=0;i<100;i++){
if(i%2==0){
System.out.println(i);
}
}
}
}
public class ThreadTest {
public static void main(String[] args) {
// 3.创建thread类的子类的对象
MyThread t1=new MyThread();
// 4.通过此对象调用start():①启动当前线程 ②调用当前线程的run()
t1.start();
//问题1:我们不能通过直接调用run()的方式启动线程
//t1.run();

 // 问题二:再启动一个线程,遍历100以内的偶数。不可以让已经start()的线程去执行。
    //会报IllegalThreadStateException异常。需要重新创建一个线程的对象
    //t1.start();
    MyThread t2=new MyThread();
    t2.start();

//如下方法仍然是在main线程中执行的
    for(int i=0;i<100;i++){
        if(i%2!=0){
            System.out.println(i+"**************");
        }
    }

}

}

例子:

/**
*** 创建两给分线程:其中一个线程遍历100以内的偶数,另一个线程连理100以内的奇数**

  • @author shkstart

  • @creat 2020 − {2020}- 2020{10}- 22 {22} 22{14:54}
    */
    public class ThreadDemo {
    public static void main(String[] args) {
    MyThread1 m1=new MyThread1();
    MyThread2 m2=new MyThread2();

     m1.start();
     m2.start();
    

    }

}
class MyThread1 extends Thread{

@Override
public void run() {
    for (int i = 0; i <100 ; i++) {
        if(i%2==0){
        System.out.println(Thread.currentThread().getName()+":"+i);}
    }
}

}
class MyThread2 extends Thread{
@Override
public void run() {
for (int i = 0; i < 100; i++) {
if(i%2!=0){
System.out.println(Thread.currentThread().getName()+":"+i);
}}
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值