Java多线程
来源:互联网 发布:photoshopcs6 for mac 编辑:程序博客网 时间:2024/06/07 06:06
Java线程是Thread类的对象,可以使用两种方式来创建多线程的Java应用程序,如下所示:
(1)实现Runnable接口
(2)继承Thread类
两种方式,都要在线程类的内部实现run()方法,然后new一个Thread,最后.start()。
1、Runnable接口的实现
package runnable;public class RunnableTest {private int length;public RunnableTest(int length) {this.length = length;}public long sum() {long ret = 0;for(int i=0;i<length; i++)ret = ret+i;return ret;}}
package runnable;public class RunnableExtend extends RunnableTest implements Runnable {public RunnableExtend(int length) {super(length);}@Overridepublic void run() {long sum = sum();System.out.println(Thread.currentThread() + " sum =" + sum);}}
package runnable;public class Main {public static void main(String[] args) {System.out.println("Thread is " + Thread.currentThread());RunnableExtend mRunnableTestThread1 = new RunnableExtend(80);Thread th1 = new Thread(mRunnableTestThread1, "th1");th1.start();RunnableExtend mRunnableTestThread2 = new RunnableExtend(140);Thread th2 = new Thread(mRunnableTestThread2, "th2");th2.start();}}
2、Thread类
package thread;public class ThreadTest extends Thread {private int length;public ThreadTest(int length) {this.length = length;}public long sum() {long ret = 0;for(int i=0;i<length; i++)ret = ret+i;return ret;}public void run() {long sum = sum();System.out.println(Thread.currentThread() + " sum =" + sum);}}
package thread;public class Main {public static void main(String[] args) {System.out.println("Thread is " + Thread.currentThread());//直接继承,创建线程ThreadTest mThreadTest1 = new ThreadTest(80);Thread th1 = new Thread(mThreadTest1, "th1");th1.start();//使用匿名类创建new Thread("th2"){int length = 190;public void run(){int ret = 0;for(int i=0;i<length; i++)ret = ret+i;System.out.println(Thread.currentThread() + " sum =" + ret);}}.start();}}
0 0
- 【Java多线程】多线程死锁
- Java 多线程
- java 多线程
- java多线程
- JAVA多线程
- java多线程
- JAVA多线程
- java多线程
- JAVA 多线程
- Java多线程
- java多线程
- JAVA 多线程
- Java 多线程
- Java 多线程
- java多线程
- Java 多线程
- Java多线程
- java 多线程
- 用java编程输出九九乘法表
- 赢在职场-WEB全栈开发-1-7margin
- 茫无头绪的瞎侃
- swift数据类型
- 第10、11周项目5:摩托车继承自行车和机动车
- Java多线程
- next_permutation
- linux动态库及静态库的制作 和makefile 的简单编写
- 第109讲: Spark Streaming电商广告点击综合案例动态黑名单基于数据库MySQL的真正操作代码实战
- Java throws以及throw疑惑解析
- 脉冲式和相位式激光测距
- mysql常见问题
- 金融新闻
- Codeforces Round #346 (Div. 2)Round House