线程的常用方法

-------------siwuxie095

   

   

   

   

   

   

线程的常用方法基本都在 Thread 类中,Runnable 接口中只有一个 run() 抽象方法

   

1)取得线程名称:getName()

   

(2)取得当前线程对象:currentThread()

   

(3)判断线程是否启动:isAlive()

   

(4)线程的强行运行:join()

   

(5)线程的休眠:sleep()

   

(6)线程的礼让:yield()

   

   

   

   

   

代码:

   

package com.siwuxie095.thread;

   

   

class MyRunnableX implements Runnable{

 

private String name;

 

//构造方法,传入参数 name,用于标识当前线程

public MyRunnableX(String name) {

this.name=name;

}

 

 

//复写 Runnable run()方法

public void run() {

//(1)打印当前线程名称

//System.out.println("当前线程名称:"+Thread.currentThread().getName());

 

for (int i = 0; i < 10; i++) {

// (2)线程休眠

// try {

// //设置休眠时间为1秒,即 1秒执行一次

// //在打印 name-i 时,1秒打印一次,从视觉上看起来比较明显

// Thread.sleep(1000);

// } catch (InterruptedException e) {

// e.printStackTrace();

// }

 

System.out.println(name+"-"+i);

 

//(3)线程礼让

if (i==5) {

//当线程执行到5时进行礼让,另一个线程开始执行

System.out.println("礼让:");

Thread.yield();

}

}

}

}

   

   

public class ThreadDemoX {

   

public static void main(String[] args) {

MyRunnableX r1=new MyRunnableX("A");

MyRunnableX r2=new MyRunnableX("B");

//Runnable创建的线程依赖于Thread启动

Thread t1=new Thread(r1);

Thread t2=new Thread(r2);

//判断线程t1是否启动

System.out.println("t1启动:"+t1.isAlive());

t1.start();

t2.start();

System.out.println("t1启动:"+t1.isAlive());

System.out.println("当前线程名称:"+Thread.currentThread().getName());

System.out.println();

 

//(4)线程强行执行

//当主线程执行到10时,t1t2开始执行(强行),t1t2执行完毕,

//之后再把CPU资源让给主线程继续执行

// for (int i = 0; i < 20; i++) {

// if (i>10) {

//

// try {

// //如果i>10,强行执行t1t2线程

// //需要加 try catch 捕获异常

// t1.join();

// t2.join();

// } catch (InterruptedException e) {

// e.printStackTrace();

// }

// }

// System.out.println("主线程:"+i);

// }

 

}

   

}

   

   

运行一览:

   

线程是否启动 当前线程名称:

   

   

   

   

线程的强行运行:

   

 

   

   

 

线程的礼让:

   

   

   

   

   

   

   

【made by siwuxie095】

 

转载于:https://www.cnblogs.com/siwuxie095/p/6629106.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中多线程常用方法有以下几种: 1. 继承Thread类:创建一个继承自Thread类的子类,并重写run()方法,在run()方法中定义线程要执行的任务。然后通过创建子类的对象,调用start()方法启动线程。 2. 实现Runnable接口:创建一个实现了Runnable接口的类,并实现其run()方法,在run()方法中定义线程要执行的任务。然后通过创建该类的对象,将其作为参数传递给Thread类的构造方法,再调用start()方法启动线程。 3. 使用Callable和Future:Callable接口是一种带有返回值的线程,通过实现Callable接口并实现其call()方法来定义线程要执行的任务。然后使用ExecutorService的submit()方法提交Callable任务,并返回一个Future对象,通过Future对象可以获取线程执行的结果。 4. 使用线程池:通过Executor框架提供的线程池来管理线程的创建和执行。可以使用Executors类提供的静态方法创建不同类型的线程池,然后将任务提交给线程池执行。 5. 使用synchronized关键字:通过在方法或代码块前加上synchronized关键字来实现线程同步,保证多个线程对共享资源的访问是互斥的。 6. 使用Lock接口:Lock接口提供了比synchronized更灵活和强大的线程同步机制。通过Lock接口的lock()和unlock()方法来实现对共享资源的加锁和解锁。 7. 使用wait()、notify()和notifyAll()方法:通过Object类提供的wait()、notify()和notifyAll()方法来实现线程间的通信和协作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值