控制线程的常用函数

中断线程:Thread.sleep() 和 Thread.yield()

在线程体中调用Thread. sleep()时需要向括号内传入参数:毫秒,一旦线程执行了这方法则进入休眠状态,不再运行程序并让出cpu执行时间。当过了休眠时间后,线程并不会马上进入运行状态,而是进入就绪状态与其他线程抢占cpu执行时间。

//定义用于实现接口Runnable的类
class RunnableImp implements Runnable{
	//复写Runnable唯一的方法run
	public void run(){
		for(int i = 0;i < 10; i++){
			System.out.println("Runnable-->" + i);
			if(i == 5){
				try{
					Thread.sleep(3000); //休眠3000毫秒
				}
				catch(Exception e){
					System.out.println(e);
				}
			}
		}
	}
}
class Test{
	public static void main(String args[]){
		//生成RunnableImp的对象
		RunnableImp ri = new RunnableImp();
		//将ri传入,生成Thread对象
		Thread t = new Thread(ri);
		//调用Thread的start方法
		t.start();
	}
}

当程序运行到i的值为5时,会停留3000毫秒后再继续运行。

在线程体中调用Thread.yield()时,当运行到这行代码时,当前线程自动让步,不在占用cpu执行时间进入就绪状态,与其他线程再次抢占cpu执行时间,并不能保证其他线程能被执行。

设置线程的优先级: getPriority() 和 setPriority()

class Test{
	public static void main(String args[]){
		RunnableImp ri = new RunnableImp();
		Thread t = new Thread(ri);
		//获取线程t的默认优先级
		System.out.println(t.getPriority());
		//设置线程的最大优先级
		t.setPriority(Thread.MAX_PRIORITY);
		System.out.println(t.getPriority());
		//设置线程的最小优先级
		t.setPriority(Thread.MIN_PRIORITY);
		System.out.println(t.getPriority());
		t.start();
	}
}

线程的最大优先级为10,最小优先级为1,可以通过Thread提供的静态常量来设置线程的优先级。优先级越高的线程执行的概率就越大

时间: 2024-10-27 12:26:52

控制线程的常用函数的相关文章

C、C++线程常用函数

1.CreateThread创建线程 HANDLE WINAPICreateThread( _In_opt_ LPSECURITY_ATTRIBUTESlpThreadAttributes, _In_ SIZE_T dwStackSize, _In_ LPTHREAD_START_ROUTINElpStartAddress, _In_opt_ __drv_aliasesMem LPVOIDlpParameter, _In_ DWORD dwCreationFlags, _Out_opt_ LPD

PHP常用函数,和一些乱起八糟的玩意儿,还挺实用的,善用php内置函数很重要

//权限控制必须文件属主正确 on linux <?php //自己写的一个调试的 class debug {     public function put_String($result)     {         $file = '/usr/share/nginx/html/test/www/debug.html';         $date = date('Y:m:d H:i:s');         file_put_contents($file, '');         if (

VC API常用函数简单例子大全[转]

第一个:FindWindow根据窗口类名或窗口标题名来获得窗口的句柄,该函数返回窗口的句柄 函数的定义:HWND WINAPI FindWindow(LPCSTR lpClassName ,LPCSTR lpWindowName); 第一个参数填窗口的类名,第二个填窗口的标题名,其实是不需要同时填两个参数的,也就是说,你只要知道窗口的类名或窗口的标题就可以了,没有的那个就用NULL代替. 比如现在有一个窗口名为"无标题.txt - 记事本"的记事本程序.那么我就可以用上面的函数获得这个

phpcms V9 常用函数 及 代码整理

常用函数 及 常用代码 总结如下 1 <?php 2 //转换字符串或者数组的编码 3 str_charset($in_charset, $out_charset, $str_or_arr) 4 5 //获取菜单 6 menu($parentid, $code = '') 7 8 //判断当前浏览器是否为IE 9 is_ie() 10 11 //检查日期的合法性 12 is_date($ymd, $sep='-') 13 14 // 检查邮箱的合法性 15 is_email($email) 16

2015-8-25-关于后端的知识以及常用函数整理

首先结构一般是分为B/S(Browser/Server)和C/S(Client/Server)的,我们所用的是基于B/S结构的. 其中这里的B主要是一些控件的组成的页面,主要是由JScript控制的, 其中的S主要是由SSL代码控制的,又分为Server Script和Data Sources,首先来说说两者的一些区别(Server Script用SS代替,Data Sources用DS代替): 对于我们这个LIMS系统来说,最常用的操作就是对数据库的增.删.改.查,其中的“查”,也就是从数据库

(转载)虚幻引擎3--UDK常用函数汇总--比较详细解释了一些类中的函数(有用,星月自己备注)

转自:http://www.mamicode.com/info-detail-590692.html foreach [用来遍历游戏中的数据,使用方法如下] local StaticMeshActor myActor; foreach AllActors(class'StaticMeshActor',myActor) { if(myActor.Tag == 'Box') { myActorSize.X = 1; myActorSize.Y = myActor.DrawScale3D.Y; myA

UNIX环境编程学习笔记(27)——多线程编程(二):控制线程属性

lienhua342014-11-09 1 线程属性概括 POSIX 线程的主要属性包括 scope 属性.detach 属性.堆栈地址.堆栈大小.优先级.在头文件 pthread.h 中定义了结构体pthread_attr_t 来记录线程的属性. 在创建线程的函数pthread_create 的第二个参数 attr 就是一个pthread_attr_t结构体的指针,通过该参数,我们可以控制新创建的线程的属性.如果 atrr参数为 NULL,表示创建一个默认属性的新线程. pthread_att

NIOS II常用函数整理-感谢slam原创

IO操作函数函数原型:IORD(BASE, REGNUM) 输入参数:BASE为寄存器的基地址,REGNUM为寄存器的偏移量函数说明:从基地址为BASE的设备中读取寄存器中偏移量为REGNUM的单元里面的值.寄存器的值在地址总线的范围之内.返回值: - 函数原型:IOWR(BASE, REGNUM, DATA)输入参数:BASE为寄存器的基地址,REGNUM为寄存器的偏移量,DATA为要写入的数据函数说明:往偏移量为REGNUM寄存器中写入数据.寄存器的值在地址总线的范围之内.返回值: - 函数

oracle sqlplus命令和常用函数

常用命令: 连接sqlplus命令行下运行cmd进入,如以sys模式登陆,命令如下:(1).sqlplus "sys/zhb126 as sysdba" (2).sqlplus/nolog  connect sys/zhb126 as sysdba (3).sqlplus scott/tiger 启动数据库实例 startup --启动数据库的同时启动控制文件.数据文件 startup mount --启动数据库的同时启动控制文件.不启动数据文件 startup nomount --仅