Java当中的线程(二)
来源:互联网 发布:网络举报工作总结 编辑:程序博客网 时间:2024/06/02 08:06
上次说了线程的实现方法是调用线程对象的run(),而这里要讲的是第二种方法。
Java当中提供了一个线程接口Runnable,下面是使用方法
RunnableImpl.java
class RunnableImpl implements Runnable{public void run(){for(int i = 0; i < 100; i++){System.out.println("Runnable-->" + i);}}}
Test.java
class Test{public static void main(String args []){//生成一个Runnable接口实现类的对象RunnableImpl ri = new RunnableImpl();//生成一个Thread对象,并将Runnable接口实现类的对象作为参数//传递给该Thread对象Thread t = new Thread(ri);//通知Thread对象,执行start方法。t.start();}}
用Runnable接口实现类同样能使用线程。
下面介绍些线程的简单控制方法
Thread.sleep(); 使线程进入休眠状态,退出休眠后是进入就绪状态。下面修改RunnableImpl.java
RunnableImpl.java
class RunnableImpl implements Runnable{public void run(){for(int i = 0; i < 100; i++){System.out.println("Runnable-->" + i);if(i == 50){try{Thread.sleep(2000);}catch(Exception e){System.out.println(e);}}}}}同样的,之前使用过Thread.sleep()的时候会产生异常,也同样的方法,捕捉它。
Test.java不变,运行编译后会发现,到50的时候会停大概2s,再继续运行。
Thread.yield(); 使线程退出抢占状态,重新回到抢CPU状态,就是就绪状态。
getPriority()
setPriority()
修改Test.java
class Test{public static void main(String args []){//生成一个Runnable接口实现类的对象RunnableImpl ri = new RunnableImpl();//生成一个Thread对象,并将Runnable接口实现类的对象作为参数//传递给该Thread对象Thread t = new Thread(ri);//线程优先级最大为10,最小为1,可以使用t.setPriority(Thread.MIN_PRIORITY);//通知Thread对象,执行start方法。t.start();System.out.println(t.getPriority());}}
通过这个代码,可以看出,线程优先级最大为10,最小为1。可用MAX_PRIORITY和MIN_PRIORITY
优先级越高,抢占CPU的概率越大。
- Java当中的线程(二)
- Java当中的线程(二)
- Java当中的线程(二)
- Java当中的线程
- Java当中的线程(一)
- Java当中的线程(三)
- Java当中的线程(一)
- Java当中的线程(三)
- Java当中的线程(一)
- Java 当中的线程(二)-- MarsChen Java4Android 教程学习笔记
- Java当中的异常(二)
- Java当中的IO(二)
- Java当中的IO(二)
- Java4Android-Java当中的异常(二)
- Java当中的IO(二)
- Java当中的线程(三)
- Java当中的 IO (二)
- zfs当中的事务处理(二)
- Elias Delta Coding
- 开博致辞
- dropdownlist绑定增加“全部”选项
- Iterator中hasNext(), next()
- Ununtu下在Matlab中读写OpenEXR格式的图片
- Java当中的线程(二)
- Winform中DataGridView绑定List<T>数据源时,点击DataGridView列头不能自动排序解决方法
- 自定义默认生成的导航栏 标题 颜色 返回按钮
- 报告称七月份国产手机大胜,市场份额82.1%
- 为何App.net 威胁不到Twitter?
- activity
- struts.xml文件详解
- The server quit without updating PID file (/var/lib/mysql/localhost.pid)
- POJ-3162-treeDP+线段树