java中Thread线程实例

线程类TestThread如下所示:
package com.test.test01;


/*
* 线程类叫:TestThread,不是说你名字中带线程单词你就具备多线程能力了(争抢资源能力)
  现在想要具备能力,继承一个类:Thread,具备了争抢资源的能力。
* */
public class TestThread extends Thread{

    public TestThread(String name) {
        super(name); //调用父类的有参构造器
    }

    /*
        一会线程对象就要开始争抢资源了,这个线程要执行的任务到底是啥?这个任务你要放在方法中,但是这个方法不能是随便写的一个方法,必须是重写Thread类中的run方法,然后线程的任务/逻辑写在run方法中
        * */
    @Override
    public void  run() {
       //输出1-10
        for(int i=1;i<=10;i++) {
            //System.out.println(super.getName()+i);
            System.out.println(this.getName()+i); //这两个方法都可以
        }
    }
}

测试线程类如下所示:

package com.test.test01;



public class Test{
    public static void main(String[] args) {
        //给main方法这个主线程设置名字
        //Thread.currentThread();//作用获取当前正在执行的线程
        Thread.currentThread().setName("主线程");
        //主线程中也要输出十个数
        for (int i = 1; i <= 10; i++) {
            System.out.println(Thread.currentThread().getName()+"1------" + i);
        }

        //制造其他线程,要跟主线程争抢资源
        //具体的线程对象:子线程
        TestThread tt = new TestThread("子线程");
        /*tt.setName("子线程");*/ //子线程名字这块注释调,不用setName了
        //tt.run();//调用run方法,想要执行线程中的任务--->这个run方法不能直接调用,直接调用就会被当做一个普通方法
        //想要tt子线程真正起作用比如要启动线程
        tt.start();//start()是Thread类中的方法

        //主线程中也要输出十个数
        for (int i = 1; i <= 10; i++) {
            System.out.println(Thread.currentThread().getName()+"2------" + i);
        }
    }

    /*
        //下面出现了主线程和子线程交替出现的情况,都是争抢资源
    *   主线程1------1
        主线程1------2
        主线程1------3
        主线程1------4
        主线程1------5
        主线程1------6
        主线程1------7
        主线程1------8
        主线程1------9
        主线程1------10
        主线程2------1
        主线程2------2
        主线程2------3
        主线程2------4
        主线程2------5
        主线程2------6
        主线程2------7
        主线程2------8
        主线程2------9
        子线程1
        主线程2------10
        子线程2
        子线程3
        子线程4
        子线程5
        子线程6
        子线程7
        子线程8
        子线程9
        子线程10

    *
    * */
}

你可能感兴趣的:(java,java,开发语言)