java多线程学习(一)

  1. 相关概念java

    进程:是一次程序的运行。安全

    线程:在进程中独立运行的子任务。多线程

    使用多线程的优势:提高系统的运行效率。异步

  2. 如何使用多线程ide

    2.1继承Thread类测试

    Thread类的结构:public class Thread implements Runnablethis

    继承Thread类的方式,最大的局限就是不支持多继承。线程

    用法:定义线程类,此类继承自Thread类,而且重写run方法。而后定义了线程对象后,调用start方法启动线程。code

public class MyThread extends Thread {
    @Override
   public void run() {
       System.out.println("MyThread");
    }
    
    public static void main(String [] args){
        MyThread myThread = new MyThread();
       myThread.start();
       System.out.println("main");
}
运行结果:
main
MyThread
或
MyThread
main

       启动了两个线程:main主线程和MyThread线程,两个线程谁先运行是随机的,因此才出现了以上的两种运行结果。对象

start方法通知线程规划器,此线程已经准备就绪,等待调用线程对象的run方法,具备异步执行的效果。如果调用了myThread。run(),则是同步执行,必须先执行完run方法,才会向下执行。

同时注意,一个线程屡次调用start方法,会抛出IlllegalThreadStateExeception异常。而多个线程对象执行start方法的顺序页不表明线程启动的顺序。

2.2实现Runnable接口

public class MyRunnable implements Runnable {

    @Override

   public void run() {

       System.out.println("MyRunnable");

    }

    

    public static void main(String [] args){

       MyRunnable myRunnable= new MyRunnable();
       Thread thread = new Thread(myRunnable);

       thread.start();

       System.out.println("main");

}

 3.多线程相关方法

currentThread():返回代码段正在被哪一个线程调用的消息:main Thread-0,Thread-1。

isAlive():判断当前线程是否处于活动状态。

sleep():在指定的毫秒数内让当前正在执行的线程休眠。

getId():获取线程的惟一标识。

4.中止线程

中止一个线程意味着在线程处理完任务以前停掉正在作的操做。

在Java中有三种方法能够终止正在运行的线程:

1)使用退出标志,使线程正常退出

2)stop方法,但该方法是不安全的。

3)使用interrupt方法中断线程。

4.1中止不了的线程

调用interrupt方法来中止线程,但interrupt方法的使用效果并非像for+break那样,立刻就终止循环,调用interrupt方法仅仅在当前线程中打了一个中止的标记,并非真的中止线程。还须要加入一个判断才能够完成线程的终止。

如何判断线程的状态是否是中止的?

Thread提供了两个方法:1)this,interrupted():测试 当前线程 是否已经中断;2)this,isInterrupted():测试线程Thread对象是否已经中断。

相关文章
相关标签/搜索