yeld方法 java_Java并发– yield()方法

屈服函数

该函数试图确保更重要的线程首先运行,而不是花费太多时间执行并且也不重要的线程。

当线程调用java.lang.Thread.yield方法时,它指示线程调度程序暂停其执行。线程调度程序选择接受还是忽略此指示。

如果线程执行“ yield”功能,则调度程序将检查是否存在具有相同或更高优先级的线程。如果是这样,则将当前线程移至可运行或就绪状态,并为该线程分配处理器资源。

收益函数的语法-public static native void yield()

让我们看一个例子-

示例import java.lang.*;

class Demo extends Thread{

public void run(){

for (int i=0; i<3 ; i++)

System.out.println("控制 " + Thread.currentThread().getName() + " thread");

}

}

public class Demo_one{

public static void main(String[]args){

Demo my_obj = new Demo();

my_obj.start();

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

Thread.yield();

System.out.println("控制 " + Thread.currentThread().getName() + " thread");

}

}

}

输出结果控制 main thread

控制 main thread

控制 main thread

控制 Thread-0 thread

控制 Thread-0 thread

控制 Thread-0 thread

名为Demo的类扩展了Thread类。在这里,定义了一个“运行”函数,该函数遍历一组元素并使用“ getName”函数获取线程的名称。名为“ Demo_one”的类定义了创建新实例并使用“ start”函数开始新实例的主要功能。同样在这里,元素被迭代,并且在线程上调用yield函数。一旦线程使用yield方法完成执行,就会有许多线程争夺处理器资源。无法指定哪个线程将首先执行。

一旦线程执行yield方法,它就会从“运行”状态进入“可运行”状态。

仅当平台支持抢先式调度时,才可以使用yield方法。

当线程在其执行期间暂停时,无法确保它早晚获得机会,这完全取决于调度算法和线程调度程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值