🌱🌱友友们大家好 我是你们的小王同学啊
今天给大家带来的是 java多线程的知识点
希望大家能支持小王 喜欢就给个三连吧
你们的三连是我制作的动力!💗💗
小王的gitee:小王同学🍰
小王的github:小王同学🍖
并发:
并行:
进程:🍔
线程:🍔
构造方法:🍔
public Thread()
:分配一个新的线程对象。public Thread(String name)
:分配一个指定名字的新的线程对象。public Thread(Runnable target)
:分配一个带有指定目标新的线程对象。public Thread(Runnable target,String name)
:分配一个带有指定目标新的线程对象并指定名字。一些常见的方法:🍔
public String getName()
:获取当前线程名称。public void start()
:导致此线程开始执行; Java虚拟机调用此线程的run方法。public void run()
:此线程要执行的任务在此处定义代码。public static void sleep(long millis)
:使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行)。public static Thread currentThread()
:返回对当前正在执行的线程对象的引用。
notify方法就是使停止的线程继续运行
线程有六种状态分别是:新建、运行、阻塞、等待、计时等待和终止
创建一个类;ThreadState,实现Runnable接口
.waitForASecond():使当前线程等待0.5秒或其他线程调用notify()或notifyAll()方法
.waitForYears();使当前线程永久等待,直到其他线程调用notify()或notifyAll()方法
.notifyNow():唤醒由调用wait方法()进入等待状态的线程
- package cn.xiaoxuzhu.daily;
-
- /**
- * @author 小王同学;
- * @version 1.0.0
- * Description:
- *
- * 1.题目描述:
- * 题目:线程有6个状态:新建,运行,阻塞,等待,计时,等待和终止
- * new新进程时,线程处于新建状态。
- * 调用start()方法,线程处于运行状态
- * 对于一些含有时间参数的方法如Thread类的sleep方法();可以使线程处于计时等待状态
- * 当run()方法运行完毕或出现异常时,线程处于终止状态。
- * 实现:查看线程的运行状态。
- *
- * 2.解题思路:
- * 创建一个类;ThreadState,实现Runnable接口
- *
- * 定义三个方法
- * .waitForASecond():使当前线程等待0.5秒或其他线程调用notify()或notifyAll()方法
- * .waitForYears();使当前线程永久等待,直到其他线程调用notify()或notifyAll()方法
- * .notifyNow():唤醒由调用wait方法()进入等待状态的线程
- *
- * 使用Thread类的getState()方法,可以获得线程的状态
- * 该方法的返回值是Thread.state
- *
- */
-
- public class ThreadState implements Runnable{
- public synchronized void waitForASecond()throws InterruptedException{
- wait(500); //使当前线程等待0.5秒或其他线程调用notify()或者notifyAll()方法
-
- }
- public synchronized void waitForYears()throws InterruptedException{
- wait(); //使当前线程永久等待,直到其他线程调用notify()或notifyAll()方法
- }
- public synchronized void notifyNow()throws InterruptedException{
- notify(); //唤醒由调用wait方法()进入等待状态的线程
- Thread.sleep(100); //留时间打印
- }
-
-
-
- @Override
- public void run() {
-
- try {
- waitForASecond(); //在新线程中运行waitForASecond();方法
- waitForYears(); //在新线程中运行waitForYears()方法
- }catch (InterruptedException e){
- e.printStackTrace();
-
- }
-
- }
- }
-
- package cn.xiaoxuzhu.daily;
-
- public class _67 {
- public static void main(String[] args) throws InterruptedException {
- ThreadState state=new ThreadState(); //创建state对象
- Thread thread=new Thread(state); //利用state对象创建Thread对象
- System.out.println("新建线程:"+thread.getState()); //输出线程状态
- thread.start(); //调用thread对象的start()方法,启动新线程
- System.out.println("启动线程:"+thread.getState()); //输出线程状态
- Thread.sleep(100);//当前线程休眠0.1秒,使新线程运行waitForASecond()方法
- System.out.println("计时等待:"+thread.getState()); //输出线程状态
- Thread.sleep(1000);//当前线程休眠1秒,使新线程运行waitForYears()方法
- System.out.println("等待线程:"+thread.getState());//输出线程状态
- state.notifyNow();//调用state的notifyNow()方法
- System.out.println("唤醒线程:"+thread.getState());//输出线程状态
- Thread.sleep(1000);;//当前新线程休眠1秒,使新线程结束
- System.out.println("终止线程:"+thread.getState()); //输出进程状态
以上就是 小王同学带给大家的多线程基础知识
觉得小王写的不错的话麻烦三连奉上
谢谢你们这么好看还关注我!💦💦