多线程
Posted lamsey16
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程相关的知识,希望对你有一定的参考价值。
一、实现线程的两种方式:
1)继承Thread类
完成线程的的代码放在run()中,对其进行覆盖;
public ThreadTest extends Thread(){
public void run(){
//线程代码
}
}
//启动线程 new ThreadTest().start();
2)实现Runnable接口
实现Runnable接口,并重写该接口的run()方法,该run()方法同样是线程执行体,创建Runnable实现类的实例
class MyRunnable implements Runnable { private int i = 0; @Override public void run() { for (i = 0; i < 100; i++) { System.out.println(Thread.currentThread().getName() + " " + i); } } }
public class ThreadTest { public static void main(String[] args) { for (int i = 0; i < 100; i++) { System.out.println(Thread.currentThread().getName() + " " + i); if (i == 30) { Runnable myRunnable = new MyRunnable(); // 创建一个Runnable实现类的对象 Thread thread1 = new Thread(myRunnable); // 将myRunnable作为Thread target创建新的线程 Thread thread2 = new Thread(myRunnable); thread1.start(); // 调用start()方法使得线程进入就绪状态 thread2.start(); } } } }
两种方法创建线程时注意区别
二、线程的生命周期
7种状态:出生--就绪---执行---等待、阻塞、休眠、死亡
休眠:Thread.sleep(2000);//休眠2s
线程的加入:threadB.join();
join方法使当前线程暂停,直到join的线程执行完毕
线程中断:stop()方法
线程的优先级
三、线程的同步
为了线程安全,防止线程冲突
java提供了线程同步的机制来防止资源访问的冲突
线程同步机制:
同一时间只允许一个线程访问,object可以为任意对象
1)同步块
synchronized(Object){
//共享的资源,如代码块
}
2)同步方法
synchronized void f(){
}
以上是关于多线程的主要内容,如果未能解决你的问题,请参考以下文章