【摘要】:Runnable对多线程的作用就是可以把它传入一个Thread中,作为新建线程的执行任务,这样就实现了多线程。自定义Thread运行结果如下:Thread[Thread-1,5,main]Thread[Thread-0,1,main]可以让一个类继承自Thread类,重写run方法来实现线程的任务单元,这样就可以不用把任务单元传给Thread,只要创建此线程并且调用start即可实现多线程。
(1)Runnable任务
运行结果如下:
thread is main start=100 end=1000 sum=495550
thread is Thread-0 start=200 end=2000 sum=1981100
ThreadRunnable是一个继承自Runnable的类,如果在主线程中创建这个类,并且调用run方法,其实它并没有什么特殊,只是正常执行求和的逻辑。Runnable对多线程的作用就是可以把它传入一个Thread中,作为新建线程的执行任务,这样就实现了多线程。
(2)自定义Thread
运行结果如下:(www.xing528.com)
Thread[Thread-1,5,main]
Thread[Thread-0,1,main]
可以让一个类继承自Thread类,重写run方法来实现线程的任务单元,这样就可以不用把任务单元传给Thread,只要创建此线程并且调用start即可实现多线程。在这个例子中用到了线程的几个方法,sleep方法用来使线程休眠,setPriority方法用来设置线程的优先级,setDaemon方法用来设置后台线程[23]。
(3)线程池
以上两种方法都需要手动创建线程、启动线程,如果使用线程池进行托管,那么就省去了直接操作线程的麻烦,并且线程池中的线程还可以复用,也省去了重复创建线程的开销。代码如下:
以上是两种创建线程池的写法,只要把任务单元传入线程池即可执行多线程运算,而不用手动创建线程。这两种方法的区别就是newFixedThreadPool会规定最大线程数。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。