实现多线程

“`
这里写代码片
package day23Thread;
/*
* 两种方式实现多线程
* 创建新执行线程有两种方法。
* A一种方法是将类声明为 Thread 的子类。
* B该子类应重写 Thread 类的 run 方法。
* C接下来可以分配并启动该子类的实例。(创建对象)
* D启动线程
*
*
*
* 该类要重写run()方法,
* 是因为不是所有的代码都要被线程执行
* 而为了区分哪些代码能被线程执行,java提供了Thread类中的run()方法,
* 用来包含那些要被线程执行的代码
*/
public class MyThread extends Thread {
@Override
public void run() {
// TODO Auto-generated method stub
//一般来说,被线程执行的代码肯定是比较耗时的,所以我们用循环改进
for(int i=0;i<200;i++){
System.out.println(getName()+”: “+i);
}

}

}

“`package day23Thread;

public class MyThreadDemo {
public static void main(String[] args) {
//创建线程对象
MyThread my=new MyThread();
//启动线程
//my.run();
//调用run()方法为什么是单线程的呢,因为直接调用它与其他的普通方法调用没有什么不同
//所以看到的是单线程的
//要想看到不一样的用start()方法

    //IllegalThreadStateException:非法的线程状态异常
    //因为这个相当于my线程被调用了两次,而不是两个线程启动
    //所以想要两个线程,就要创建两个线程对象
    MyThread my1=new MyThread();
    //设置线程名称
    my1.setName("kitty");
    my.setName("Tom");
    my.start();
    my1.start();

    /*
     * 如何获取main方法的所在线程对象的名称、
     * public static Thread currentThread()返回对当前正在执行的线程对象的引用。 
     * 也是针对不是Thread类的子类中如何获取线程对象名称
     */
    System.out.println(Thread.currentThread().getName());


}

}

/*
* 如何获取线程的名称
* public final String getName()
*
*
* public Thread() {
init(null, null, “Thread-” + nextThreadNum(), 0);
}

   如何设置线程的名称
   public final void setName(String name)改变线程名称,使之与参数 name 相同。 

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值