java 静态线程_Java线程类静态本机void yield()方法(带示例)
线程类静态本机无效 yield()软件包java.lang.Thread.yield()中提供了此方法。
yield()方法表示停止当前正在执行的线程,并为其他优先级相同的等待线程提供机会。
如果没有等待线程,或者所有等待线程的优先级都较低,则同一线程将继续执行。
这种方法的优点是有机会执行其他等待线程,因此,如果我们当前的线程需要更多时间来执行并将处理器分配给其他线程。
此方法是静态的,因此我们也可以使用类名访问此方法。
这是一个本地方法,这意味着该方法的实现在其他语言(例如C,C ++)中可用,因此只要需要此方法,就可以在类中声明。
我们不能期望何时产生收益将由线程调度程序决定。
此方法的返回类型为void,因此它不返回任何内容。
语法:static native void yield(){
}
参数:
在Thread方法中,我们不传递任何对象作为参数。
返回值:
此方法的返回类型为void,它不返回任何内容。
Java程序演示yield()方法示例/* We will use Thread class methods so we are
importing the package but it is not mandate because
it is imported by default
*/
import java.lang.Thread;
class MyThread extends Thread {
//run()Thread类的重写方法
public void run() {
for (int i = 0; i
//通过调用yield()方法意味着MyThread停止其
//执行并给主线程一个机会
Thread.yield();
System.out.println("Thread started:" + Thread.currentThread().getName());
}
System.out.println("Thread ended:" + Thread.currentThread().getName());
}
}
class Main {
public static void main(String[] args) {
//在这里,我们调用start()Thread类的方法,然后
//它将调用run()MyThread的方法
MyThread mt = new MyThread();
mt.start();
for (int i = 0; i
System.out.println("Thread started:" + Thread.currentThread().getName());
}
System.out.println("Thread ended:" + Thread.currentThread().getName());
}
}
注意:如果我们在/*Thread.yield()*/这一行中添加注释,则两个线程将同时执行,我们无法预期哪个线程将完成其执行。
如果我们不注释/*Thread.yield()*/这一行,那么就有可能首先执行主线程,因为MyThread总是调用yield()方法。
输出结果E:\Programs>javac Main.java
E:\Programs>java Main
Thread started:main
Thread started:Thread-0
Thread started:main
Thread started:main
Thread started:main
Thread started:main
Thread started:Thread-0
Thread ended:main
Thread started:Thread-0
Thread started:Thread-0
Thread started:Thread-0
Thread ended:Thread-0
java 静态线程_Java线程类静态本机void yield()方法(带示例)相关推荐
- java clock计时_Java Clock类| 实例的Instant()方法
java clock计时 Clock Class Instant()方法 (Clock Class instant() method) instant() method is available in ...
- java中的starts_Java Math类静态double nextAfter(double starts,double direction)示例
java中的starts 数学类静态double nextAfter(双向启动,双向) (Math Class static double nextAfter(double starts , doub ...
- java math 类_Java Math类静态长轮(double d)示例
java math 类 数学课静态长回合(双D) (Math Class static long round(double d) ) This method is available in java. ...
- java math 类_Java Math类静态双层(double d)示例
java math 类 数学班静态双层(双D) (Math Class static double floor(double d)) This method is available in java. ...
- java thread 线程_Java Thread类简述
今天我们来看下java.lang.Thread这个类. 在学习Thread类之前,先看下线程相关知识:线程的几种状态.上下文切换,然后介绍Thread类中的方法的具体使用. 1.线程的状态 线程从创建 ...
- 简述java的线程_JAVA线程简述
一.先谈谈并行与并发: 并行:是指两个或多个事件在同一时刻发生. 并发:是指连个或多个事件在同一时间间隔内发生. 二.接下来我们进入正题,讨论一下线程和进程: 1)什么是线程和进程? 进程:是一个具有 ...
- java 优化线程_JAVA线程优化
Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了, ...
- java 访问线程_java线程简介(共享对数据的访问)
1. 共享变量 要使多个线程在一个程序中有用,它们必须有某种方法可以互相通信或共享它们的结果. 让线程共享其结果的最简单方法是使用共享变量.它们还应该使用同步来确保值从一个线程正确传播到另一个线程,以 ...
- 抽象类java启动线程_java 线程复习笔记
1. 线程基本概念 1.1 线程与进程 当一个程序进入内存运行时,即变成一个进程.进程是系统进行资源分配和调度的一个独立单元. 线程是进程的组成部分,一个进程可以拥有多个线程,一个线程必须有一个父进程 ...
最新文章
- 获取DataRow某列的值的封装
- 关系数据库设计【笔记】
- 极狐(GitLab)发布首款“GitNative”DevOps云一体化解决方案
- java array 元素的位置_JAVA集合类,有这一篇就够了
- .netCore2.0 程序集DI依赖注入
- 深入分析HDFS原理及读写流程
- FLTK学习笔记1-绘制基本控件(按钮、文本输入、容器)
- 树莓派的IP地址查找
- 按键双击和单击c语言,按键单击与双击
- 另类搞笑:自我指涉例句不完全收集
- python通过selenium爬取百度文库
- mysql运维备份_MySQL运维经验
- Java 水果排序
- 计算机平面设计福建专科学校,2016年福建单招视觉传达设计专业的学校有哪些?...
- 远程办公:通过cpolar内网穿透,远程桌面控制家里公司内网电脑
- 四川大学计算机学院男女生比例,2019年四川各大高校男女比例排行,电子科技大学4比1...
- 计算几何及其应用——计算几何基础
- Zip、Rar文件解压
- 不能打开要写入的文件,软件安装不上解决方法
- Windows服务器双网卡绑定的方法(HP/Broadcom网卡)
热门文章
- 前端学习(2322):angular内容介绍
- 前端学习(1865)vue之电商管理系统电商系统之实现表单的数据绑定
- 前端学习(1802):前端调试之事件伪类
- 前端学习(1423):ajax错误处理
- 第一百三十二期:MySQL系列:一句SQL,MySQL是怎么工作的?
- 第八十六期:“程序员锁死服务器导致公司倒闭”案正式开庭审理
- java学习(175):method类反射机制
- python之sys
- xxljob 配置具体定时任务_记一次xxl-job定时任务没有触发的问题
- 用 vue-route 的 beforeEach 实现导航守卫(路由跳转前验证登录)