线程
2019-04-24 19:05
58 查看
实现Runnable接口创建多线程
class Tick implements Runnable { private int num = 100; public void run() { while (true) { if(num>0) { Thread tk = Thread.currentThread();//获得当前线程 String mString = tk.getName();//获得当前线程的名字 System.out.println(mString+" "+num--+" "); } } }
多线程
public static void main(String[] args) { // TODO Auto-generated method stub Tick tick = new Tick();//创建实例对象 new Thread(tick,"m1").start();//创建线程对象并命名m1,开启线程 new Thread(tick,"m2").start(); new Thread(tick,"m3").start(); new Thread(tick,"m4").start(); }
后台线程
public static void main(String[] args) { Tick tick = new Tick();//创建实例对象 Thread k = new Thread(tick,"后台线程"); k.setDaemon(true);//将线程k设置为后台线程 k.start();//开启线程 }
线程的优先级
public static void main(String[] args) { // TODO Auto-generated method stub Tick tick = new Tick();//创建实例对象 Thread k1 = new Thread(new Tick(),"优先级max"); Thread k2 = new Thread(new Tick(),"优先级nin"); Thread k3 = new Thread(new Tick(),"优先级norm"); Thread k4 = new Thread(new Tick(),"优先级2"); //优先级高到低,高的优先执行 k1.setPriority(Thread.Max_PRIORITY);//最高优先级 ——10 k2.setPriority(Thread.MIN_PRIORITY);//最低优先级 ——1 k3.setPriority(Thread.NORM_PRIORITY);//普通优先级 ——5 k4.setPriority(2);//优先级 ——2 k1.start();k2.start();k3.start();k4.start(); }
线程休眠
Thread.sleep(500); //当前线程休眠500毫秒 //只能控制当前线程休眠,休眠时间结束后,线程返回就绪状态,不立即执行
线程让步
while(条件): Thread.yield();//线程运行到此,做出让步
线程插队
Tick tick = new Tick();//创建实例对象 tick.start(); while(条件): t.join();
同步代码块
synchronized(lock){ 操作共享资源代码块 } synchronized 返回值类型 方法名 ([参数1,。。。。]){ }
多线程通信
void wait() 使当前线程放弃同步锁并进入等待在,直到其他线程进入此同步锁,并调用notify()方法,或notifyAll()方法唤醒该线程为止 void notify() 唤醒此同步锁等待的第一个调用wait()方法的线程 void notifyAll() 唤醒此同步锁调用wait()方法的所有线程
相关文章推荐
- android UI线程与非UI线程交互(二)
- 进程与线程的区别联系
- (四十)线程——概念
- linux 下线程的创建
- 如何在工作线程中创建窗口
- 《Windows核心编程》学习笔记(6)– 线程的创建、与进程的关系、伪句柄转换
- 【Java线程】锁机制:synchronized、Lock、Condition
- 12、多线程:Threading、守护线程
- 线程间通信的问题:使用AsyncTask:
- Java多线程(3) 线程之间通信
- Java的进程与线程
- Java线程概念
- java线程基础
- 定制并发类(四)实现ThreadFactory接口生成自定义的线程
- runOnUIThread、Handler、AsyncTask与子线程结合使用更新UI
- Android进阶(十六)子线程调用Toast报Can't create handler inside thread that has not called Looper.prepare() 错误
- C#线程类框架,支持消息队列,通过postmessage从UI线程发送消息到工作者线程
- 在子线程中实现修改文本框内容
- C#线程 在某一时间内,只有N个线程在并发执行,其余都在队列中的实现
- Tomcat6 内存和线程配置