选择 Java速通 Day7 – 多线程

/ 0评 / 0

能一直看到这里基本的编码能力肯定是有的了,所以我这里就很少展开了.基本就更像是思维导图,如果对当前得方法有兴趣,还得自己去查查看.

一个类继承Thread类,并实现run方法,实例化这个类并调用start()方法时,就会创建一个线程来运行,要想打断正在运行的现成,线程里必须存在Thread.sleep()的调用,这个调用会被InterruptedException打断,捕获这个异常可以退出这个线程.实现的这个类的构造方法可以传入一些参数.

但是Therad是个类,单独为一个小任务开一个类不划算,所以可以用Runnable,他是一个接口.可以使用一些仍在寿命周期的变量,不能传入参数.

new Thread(new Runnable() {
	@Override
	public void run() {
		// 干一些活!
	}
}).start(); // 创建并启动线程

如果还要涉及返回值要用Callable,使用FutuerTask创建任务,并在合适的时候使用future.run运行,再在合适的时候用future.get获取返回值.

除了立即运行还有延迟运行和周期性运行,可以继承TimerTask来实现,继承后有schedule方法,可以指定多久后执行,或者周期性执行.

既然有了多线程就等于支持一定程度的并发,主要的同步控制有以下方法.

多线程本身难度不大,主要还是看应用.

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注