package test.Thread;
import java.util.Date;
public class testYield {
public static void main(String[] args) {
// TODO Auto-generated method stub
Thread4 t1 = new Thread4("t1");
Thread4 t2 = new Thread4("t2");
t1.start();t2.start();
}
}
class Thread4 extends Thread {
public Thread4(String arg0) {
super(arg0);
// TODO Auto-generated constructor stub
}
@Override
public void run() {
// TODO Auto-generated method stub
for(int i=1;i<20;i++){
System.out.println(getName()+" " + new Date() + ":" + i);
if(i%5==0){
Thread.yield();
}
}
}
}
The result is :
t2 Sat Sep 06 16:58:35 CST 2008:1
t2 Sat Sep 06 16:58:35 CST 2008:2
t2 Sat Sep 06 16:58:35 CST 2008:3
t2 Sat Sep 06 16:58:35 CST 2008:4
t2 Sat Sep 06 16:58:35 CST 2008:5
t2 Sat Sep 06 16:58:35 CST 2008:6
t2 Sat Sep 06 16:58:35 CST 2008:7
t2 Sat Sep 06 16:58:35 CST 2008:8
t1 Sat Sep 06 16:58:35 CST 2008:1
t1 Sat Sep 06 16:58:35 CST 2008:2
t1 Sat Sep 06 16:58:35 CST 2008:3
t2 Sat Sep 06 16:58:35 CST 2008:9
t2 Sat Sep 06 16:58:35 CST 2008:10
t1 Sat Sep 06 16:58:35 CST 2008:4
t1 Sat Sep 06 16:58:35 CST 2008:5
t2 Sat Sep 06 16:58:35 CST 2008:11
t2 Sat Sep 06 16:58:35 CST 2008:12
t2 Sat Sep 06 16:58:35 CST 2008:13
t2 Sat Sep 06 16:58:35 CST 2008:14
t1 Sat Sep 06 16:58:35 CST 2008:6
t1 Sat Sep 06 16:58:35 CST 2008:7
t1 Sat Sep 06 16:58:35 CST 2008:8
t2 Sat Sep 06 16:58:35 CST 2008:15
t1 Sat Sep 06 16:58:35 CST 2008:9
t2 Sat Sep 06 16:58:35 CST 2008:16
t1 Sat Sep 06 16:58:35 CST 2008:10
t2 Sat Sep 06 16:58:35 CST 2008:17
t1 Sat Sep 06 16:58:35 CST 2008:11
t2 Sat Sep 06 16:58:35 CST 2008:18
t1 Sat Sep 06 16:58:35 CST 2008:12
t2 Sat Sep 06 16:58:35 CST 2008:19
t1 Sat Sep 06 16:58:35 CST 2008:13
t1 Sat Sep 06 16:58:35 CST 2008:14
t1 Sat Sep 06 16:58:35 CST 2008:15
t1 Sat Sep 06 16:58:35 CST 2008:16
t1 Sat Sep 06 16:58:35 CST 2008:17
t1 Sat Sep 06 16:58:35 CST 2008:18
t1 Sat Sep 06 16:58:35 CST 2008:19
分享到:
相关推荐
- `Thread.yield()`方法使当前线程让出CPU,但不保证一定会切换到其他线程,而是由操作系统决定。 在实际编程中,我们需要根据具体需求选择合适的同步机制,合理控制线程的执行顺序,确保程序的正确性和性能。通过...
在实际开发中,`yield()`并不常用,通常是在需要优化特定场景下的线程行为时才考虑使用,例如在处理大量短生命周期的线程时,可以尝试用`yield()`来平衡各个线程的执行时间。 总结一下,Java中的`Thread.yield()`...
线程还可以通过调用`yield()`方法主动让出CPU时间片,返回可运行状态,等待下一次调度。 #### 六、线程同步与互斥 在多线程环境中,线程之间的同步和互斥是确保数据一致性和程序正确性的关键。这是因为多个线程...
在学习Java过程中,自己收集了很多的Java的学习资料,分享给大家,有需要的欢迎下载,希望对大家有用,一起学习,一起进步。
Java 多线程机制是Java语言的一大特性,它允许程序同时执行多个任务,模拟现实生活中的并发行为。在Java中,创建线程有两种主要方式:继承Thread类和实现Runnable接口。 在例子1中,我们看到一个简单的多线程示例。...
`sleep`, `yield`, 和 `wait` 是 Java 中用于线程管理的三个重要方法,它们各自有着不同的功能和用途。理解它们的区别有助于编写出更加高效和可控的多线程程序。 1. **sleep() 方法** - `Thread.sleep(millisecond...
yield()则让当前线程暂停,给其他线程执行的机会。interrupt()用于中断线程,配合isInterrupted()或interrupted()检查线程是否被中断。 4. 同步与锁机制 在多线程环境中,数据安全和一致性问题至关重要。Java提供...
3. **测试与调试**:在编写多线程程序时,`yield()`可以帮助开发者观察和控制线程的执行顺序,方便测试和调试。 然而,需要注意的是,过度使用`Thread.yield()`可能导致性能下降,因为它增加了线程上下文切换的次数...
- `yield()`方法让当前线程暂停执行,并允许具有相同优先级的其他线程运行。 - **题4**:`Thread.currentThread()`方法的作用是什么? - 返回当前正在执行的线程对象。 - **题5**:`Thread.getName()`和`Thread....
本文将总结五个关键的线程控制方法:wait()、await()、sleep()、yield()和join()。这些方法各自有独特的用途和不同的工作机制。 一、wait()、notify()、notifyAll()用法 wait()、notify()和notifyAll()是Object类...
`Thread.sleep()`方法让当前线程暂停执行指定时间,不释放锁,而`yield()`则让当前线程让出CPU执行权,但不释放锁,通常用于让相同或更高优先级的线程有机会执行。`join()`方法使得当前线程等待指定线程执行完毕后再...
- `public static native void yield()`:让当前正在执行的线程放弃CPU时间片,使得其他线程有机会运行。 - `public static native void sleep(long millis) throws InterruptedException`:使当前正在执行的线程...
- `yield()`:让当前线程放弃执行机会,转而让其他线程运行。 - `isAlive()`:检查线程是否处于运行状态。 - `start()`:启动线程,使线程开始执行。 - `run()`:由`start()`方法调用,执行线程的主要任务。 - ...
- `yield()`:让当前线程暂停,将CPU执行权让给其他线程,但不保证一定会切换。 - `join()`:等待该线程结束,调用者线程会阻塞直到该线程执行完毕。 - `isAlive()`:判断线程是否还在执行。 3. 过时方法 ...
提出的屈服准则已经在解释中国重庆试验道路的现场测试结果以及工程实践案例研究中得到了成功的应用,这是传统方法所无法实现的。 在此过程中,特别强调了车辙抗性这一关键指标,它是评估路面设计质量的重要因素之一...
- `yield()`: 让出CPU执行权,但不保证立即执行其他线程。 - `interrupt()`: 设置线程中断标志,配合`isInterrupted()`和`interrupted()`检查中断状态。 5. **同步机制**: - `synchronized`关键字:用于方法或...
T03_Sleep_Yield_Join.java
- `yield()`:停止当前线程执行,将CPU控制权交给其他线程。 - `stop()`:强制停止线程。 - `suspend()`:暂停线程执行,但不退出可执行状态。 - `resume()`:恢复之前被`suspend()`暂停的线程。 #### 四、线程周期...
在Java多线程编程中,理解并正确使用`yield`和`join`方法是至关重要的。这两个方法都属于线程控制策略的一部分,但它们的作用和使用场景有所不同。 首先,我们来详细探讨`Thread.yield()`方法。这个方法的目的是让...