码迷,mamicode.com
首页 > 编程语言 > 详细

Java基础中的 线程

时间:2017-06-02 18:54:08      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:启动   tar   ==   区别   避免   类对象   调用   i++   方式   

 

 创建线程的方式:

  1. 继承Thread类

    (1)定义类,继承Thread

    (2)复写Thread类中的void run()方法(因为Thread类用于描述线程,该类就定义了一个功能,用于存储线程要运行的代码。该存储功能就是run方法。)

    (3)调用线程的start方法,该方法能启动线程,并能调用run方法

    注:对象.run()仅仅是对象调用方法。而线程创建了,并没有运行;

      对象.start()开启线程并执行该线程的run方法

  2. 实现Runnable接口

    (1)定义类,实现Runnable接口

    (2)覆盖Runnable接口中的run方法。将线程要运行的代码存放在该run方法中

    (3)通过Thread类建立线程对象

    (4)将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数。因为,自定义的run方法所属的对象是Runnable接口的子类对象,所以要让线程去执行指定对象的run方法,就必须明确该run方法所属的对象。

    (5)调用Thread类的start方法开启线程,并调用Runnable接口子类的run方法

  实现方式与继承方式的区别:

   实现方式好处:避免了单继承的局限性。在定义线程时,建议使用实现方式。

   继承Thread:线程代码存放在Thread子类run方法中;实现Runnable:线程代码存放在接口的子类的run方法。

继承Thread类的例子

public class TestThread2 {
    public static void main(String[] args) {
        
        MyThread2 mt = new MyThread2();
        
        mt.start();
        
        for (int i = 0; i < 50; i++) {
            System.out.println("TestThread-----------" + i);
        }
    }
}

class MyThread2 extends Thread{
    public void run() {
        for (int i = 0; i < 50; i++) {
            System.out.println("MyThread=========" + i);
        }
    }
}

实现Runnable接口的例子:

public class TestThread {
    public static void main(String[] args) {
        
        MyThread mt = new MyThread();
        Thread t = new Thread(mt);
        t.start();
        // mt.run();
        for (int i = 0; i < 50; i++) {
            System.out.println("TestThread-----------" + i);
        }
    }
}

class MyThread implements Runnable {
    public void run() {
        for (int i = 0; i < 50; i++) {
            System.out.println("MyThread=========" + i);
        }
    }
    
}

3.线程的方法:

   Join方法:线程对象.join(),当A线程执行到了B线程的.join()方法,A就会等待。等B线程都执行完,A才会执行。join可以用来临时加入线程执行。

 yield方法:暂停当前正在执行的线程对象,并执行其他线程。

   static Thread currentThread():获取当前线程对象

 getName():获取线程名称

 设置线程名称:setName()或者构造函数

Java基础中的 线程

标签:启动   tar   ==   区别   避免   类对象   调用   i++   方式   

原文地址:http://www.cnblogs.com/514929hgy/p/6934698.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!