Java多线程的实现方式
Java的多线程是一个同时执行多个线程的过程。
创新互联主要从事网站制作、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务南山,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
线程是一个轻量级的子进程,是最小的处理单元。多线程和多进程都用于实现多任务处理。
但是,我们使用多线程而不是多进程,因为线程使用共享内存区域,它们不分配单独的内存区域以节省内存,而且线程之间上下文切换比进程花费的时间更少。
用一个东西之前,总得了解一下它的优点,这样才有动力看下去,这里我们先看一下多线程的优点。
Java多线程的优点
它不会阻塞用户,因为线程是独立的,你可以同时执行多个操作,举个栗子,你需要一个延时,等待三秒钟再进行接下来的操作,如果你使用单线程,它就真的等了你三秒,这三秒,啥都不干,啥都得放一边,就等。。。这明显是不可接受的。
你可以同时执行多个操作,节省时间。这里面又牵扯到CPU密集型和IO密集型的问题,可以看这篇文章:关于多线程的CPU密集型和IO密集型这件事
线程是独立的,死掉一个,不影响另一个。
继承Thread来实现多线程
Java提供了一个超类Thread给我们来extends,一旦继承了它,就可以通过override 其中的run方法,来实现多线程,具体代码如下:
package com.dingtao.test; import java.io.*; public class MyThread extends Thread{ @Override public void run() { System.out.println(Thread.currentThread().getName()); } public static void main(String[] args) throws IOException { Thread t1 = new MyThread(); Thread t2 = new MyThread(); t1.start(); t2.start(); } }
通过实现Runnable接口来实现
因为对于一些类来说,他们不能继承Thread来实现多线程,因为Java规定同时只能继承一个超类,但是却可以同时实现多个接口,因此Runnable就更格外受欢迎。具体代码如下:
package com.dingtao.test; import java.io.*; public class MyThread implements Runnable{ @Override public void run() { System.out.println(Thread.currentThread().getName()); } public static void main(String[] args) throws IOException { Thread t1 = new Thread(new MyThread()); Thread t2 = new Thread(new MyThread()); t1.start(); t2.start(); } }
通过Callable来实现一个Thread
具体代码如下:
package com.dingtao.test; import java.util.concurrent.Callable; import java.util.concurrent.FutureTask; public class MyThread implements Callable{ public static void main(String[] args){ MyThread t1 = new MyThread(); FutureTask future = new FutureTask (t1); new Thread(future,"呵呵哒").start(); } @Override public Integer call() throws Exception { System.out.println(Thread.currentThread().getName()); return null; } }
以上就是java如何实现多线程的详细内容,更多请关注创新互联其它相关文章!
分享标题:Java多线程的实现方式
分享URL:http://pwwzsj.com/article/pjjgdo.html