多线程的实现和常用操作方法
2021-05-11 14:27
标签:意思 void 实例 包装 就是 tar row task stop java.lang.Thread是一个线程操作的核心类。新建一个线程最简单的方法就是直接继承Thread类,而后覆写该类中的run()方法(就相当于主类中的main方法) 线程休眠:指让线程暂缓一下,到了预计时间再执行。 调用这个方法会暂停当前线程对象,并执行其他线程。 等待该线程终止。意思就是如果在主线程中调用该方法时就会让主线程休眠,让调用该方法的线程run方法先执行完毕之后在开始执行主线程。 wait()方法是让当前线程进入等待状态,同时,wait()也会让当前线程释放它所持有的锁,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法”,当前线程被唤醒(进入“就绪状态”)。 多线程中有三种方式可以停止线程。 多线程的实现和常用操作方法 标签:意思 void 实例 包装 就是 tar row task stop 原文地址:https://blog.51cto.com/14298563/25050911.继承 Thread 类
public class MyThread extends Thread{
@Override
public void run() {
System.out.println("MyThread is run");
}
}
MyThread myThread = new MyThread();//创建myThread实例
myThread.start();//启动线程
2.实现Runnable接口
public class MyThread implements Runnable{//实现Runnable接口
@Override
public void run() {
System.out.println("MyThread is run");
}
}
MyThread myThread = new MyThread();
Thread thread = new Thread(myThread);//将自己的myThread传入Thread
thread.start();//启动线程
3.实现Callable接口,重写call函数
public interface Callable
二、多线程常用操作方法
1.线程休眠 sleep()
线程休眠的时候会让出CPU,让CPU执行其他的任务,但是sleep方法不会释放锁,也就是说当前线程持有对某个对象的锁的时候,其他线程无法访问这个对象。2.线程让步 yield()
yield方法会让当前线程交出CPU权限,让CPU执行其他的线程,同样也不会释放锁。但是yield不能控制让出CPU的时间。yield方法只能让拥有相同优先级的线程有获取CPU执行时间的机会。
调用yield方法并不会让线程进入阻塞状态,而是让线程重回就绪状态,它只需要等待重新获取CPU执行时 间,这一点是和sleep方法不一样的。3.join()方法
4.wait()方法
5.线程停止
①. 设置标记位,可以是线程正常退出。
②. 使用stop方法强制使线程退出,但是该方法不安全。
④. 使用Thread类中的一个interrupt() 可以中断线程。