本篇文章给大家谈谈java等待,以及Java等待资源时检测到死锁对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
1、Java中阻塞和等待的区别2、JAVA中如何设置等待时间(非线程)3、java 等待一秒方法4、Java如何等待子线程执行结束5、java等待3分才去请求数据
Java中阻塞和等待的区别
定义解释
阻塞:当一个线程试图获取一个内部的对象锁(非java.util.concurrent库中的锁),而该锁被其他线程持有,则该线程进入阻塞状态。
等待:当一个线程等待另一个线程通知调度器一个条件时,该线程进入等待状态。例如调用:Object.wait()、Thread.join()以及等待Lock或Condition。
可以通过代码与JConsole来验证
验证阻塞
public static void main(String[] args) throws Exception {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
// 等待主线程获取锁
Thread.sleep(10000);
// 请求locker对象的内部锁
synchronized (locker) {
System.out.println(“Get locker”);
}
} catch (InterruptedException e) {
// TODO: handle exception
}
}
}, “Blocked Thread”);
thread.start();
// 请求locker内部对象锁
synchronized (locker) {
// 始终持有locker对象的内部锁
while (true) {
;;
}
}
}
JAVA中如何设置等待时间(非线程)
java中使用用线程控制Task任务,启动下面的线程就可以了,new Thread(new Task()).start() ;public class
Task implements Runnable {//新建一个任务
private TextArea textArea;
public Task(TextArea textArea){
this.textArea = textArea;
}
public void run() {
while (true) {
this.textArea.setText(“这里设置: 输出的一段文字”);
try {
Thread.sleep(500); // 这里设置:隔多长时间
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
java 等待一秒方法
sleep是静态方法,它的调用会引起所有进程的休眠。
在等待的进程中执行notify()和wait()方法,在外面的进程计时,执行够一秒的时候放弃cpu,让之前的线程执行
Java如何等待子线程执行结束
先调用
shutdown
在调用
isTerminated
例:
/*
* 采用线程池开启多个子线程,主线程等待所有的子线程执行完毕
*/
public static void moreThread() {
try {
int threadNum = 0;
for (int i = 0; i 10; i++) {
threadNum++;
final int currentThreadNum = threadNum;
exe.execute(new Runnable() {
@Override
public void run() {
try {
System.out.println(“子线程[” + currentThreadNum + “]开启”);
Thread.sleep(1000*10);
} catch (InterruptedException e) {
e.printStackTrace();
}finally{
System.out.println(“子线程[” + currentThreadNum + “]结束”);
}
}
});
}
System.out.println(“已经开启所有的子线程”);
exe.shutdown();
System.out.println(“shutdown():启动一次顺序关闭,执行以前提交的任务,但不接受新任务。”);
while(true){
if(exe.isTerminated()){
System.out.println(“所有的子线程都结束了!”);
break;
}
Thread.sleep(1000);
}
} catch (InterruptedException e) {
e.printStackTrace();
}finally{
System.out.println(“主线程结束”);
}
}
java等待3分才去请求数据
1. 线程等待:Thread.sleep(xxxx) 只要在case中加入sleep就会强制等待设置的时间后才会执行之后的命令,这种等待一般适用于调试脚本的时候。 java代码 //等待
2. 隐试等待:driver.manage().timeouts().implicitlyWait(xx, TimeUnit.SECONDS) 隐式等待,是设置的全局等待。设置等待时间,是对页面中的所有
3. 显示等待: new WebDriverWait(driver, xx).until(
关于java等待和Java等待资源时检测到死锁的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。