java 线程 api_轻松玩转java之线程相关API

获取运行当前方法的线程:

Thread t = Thread.currentThread();//是获取当前方法的线程

System.out.print(“运行当前方法的线程是:”+t);

获取线程信息的相关方法:

long getId();/返回线程的标识符.int getPriority();返回线程的优先级

String getName();//返回该线程的名称.

Thread.state getState();//获取该线程的状态

boolean isAlive();//测试线程是否处于活动状态

boolean isDaemon();//测试线程是否是守护线程

boolean isInterrupted();//测试线程是否已经中断

线程的优先级分为10级(1-10),10最高,线程提供了3个常量来表示:

Thread.MIN_PRIORITY(最低)、Thread.MAX_PRIORITY(最高)、

Thread.NORM_PRIORITY(默认优先级)。

void setPriority(int priority);//分配优先级。理论上优先级越大,线程获得cpu时间片的次数就越多.(线程的时间分配是无法干预的,但是可以通过优先级来控制) //t1.setPriority(Thread.MAX_PRIORITY);

static void sleep(long ms) //线程提供的静态方法sleep可以使运行该方法的线程进入阻塞状态指定毫秒,超时后线程会自动回到Runnable状态。

while(true){

System.out.print(“问问”);

try{

Thread.sleep(1000);//每一秒输出问问一次

}catch(InterruptedException e){

e.printStackTrace();

}

}

线程安全的相关API:

StringBuilder 不是同步的,append();

StringBuffer 是同步的 synchronized append();

vector和Hashtable是同步的(先后次序); ArrayList和HashMap不是同步的

获取线程安全的集合方式:

将集合或者Map转换为安全的

list = Collections.synchronizedList(List);//获取线程安全的List集合

ExecutorService是java提供的用于管理线程池的类

线程池的两个主要作用:

1)控制线程数量

2)重用线程

使用ExecutorService实现线程池:

Executors.newFixedThreadPool(int Threads)//可以用于创建固定线程数量的线程池,里面的线程可以重用

ExecutorService thread=Executors.newFixedThreadPool(2);//创建线程池

thread.execute(runn);//线程池开始执行任务runn(runnable实例)

thread.shutdown();//线程池里面的任务完成后停止

thread.shutdownNow();//线程会立即停止正在运行的任务

879ca41f1c593418ecf4671cbcb120d4.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值