-
多线程的创建
-
创建类继承
Thread
重写run
方法,创建对象,调用对象的start
方法 -
实现
Runnable
接口的类,实现Runnable
中的run
方法,创建对象,将这个对象作为参数传到Thread
类的构造器中创建Thread
类的对象,通过Thread
类调用run
方法(在开发中优先使用实现Runnable方式,因为①单继承方式存在局限性,而接口可以同时实现多个②实现的方式更适合来处理多个线程存在共享数据的方式,可以把一个实现Runnable的对象放在多个Thread中)
-
实现
Callable
接口,可以借助FutureTask
类得到返回值,可以抛出异常,支持泛型的返回值,实现call
方法import java.util.concurrent.Callable; import java.util.concurrent.FutureTask; class a implements Callable { public Object call() throws Exception { return 1; } } class b { public static void main(String[] args) throws Exception { a x = new a(); FutureTask f = new FutureTask(x); new Thread(f).start(); Object r = f.get(); System.out.println(r); } }
-
线程池
ExecutorService service = Executors.newFixedThreadPool(20); //Runnable service.execute(new Runnable() { @Override public void run() { } }); //Callable service.submit(new Callable<Object>() { public Object call() throws Exception { return 1; } }); service.shutdown();
-
-
Thread
中的方法-
start
、run
、getName
、setName
-
static Thread currentThread()
-
yeild
:释放当前线程cpu
执行权 -
B.join
:A进入阻塞状态,直到B执行完,A阻塞状态结束 -
sleep
:静态方法,当前线程阻塞指定的毫秒数 -
isAlive
:判断当前线程是否存活 -
getPriority
:获取优先级 -
setPriority
:设置优先级
-
-
不可以让已经
start
的线程再启动,否则会报异常 -
start
作用为开启一个新线程并执行run
方法 -
解决线程安全问题的方法
-
同步代码块:
synchronized(同步监视器) {同步代码块}
-
同步方法:
public synchronized void show()
同步监视器为this
,public static synchronized void show()
同步监视器为class
,任何一个类的对象都可以充当同步监视器 -
lock锁
ReentrantLock lock = new ReentrantLock() try { lock.lock() //代码 } finally { lock.unlock() }
-
【JAVAEE】java_4_线程
最新推荐文章于 2024-10-27 15:49:02 发布