本文实例讲述了Java并发编程之常用的多线程实现方式。分享给大家供大家参考,具体如下:
概述
常用的多线程实现方式有两种:
1。继承线程类
2。实现运行的接口
之所以说是常用的,是因为通过还可以通过JUC (java . util . concurrent)包中的线程池来实现多线程。关于线程池的内容,我们以后会详细介绍;现在,先对的线程和Runnable进行了解。
线程简介
线程是一个类.Thread本身就实现了Runnable接口。它的声明如下:
公共类线程实现Runnable {} >之前线程的作用是实现多线程。
ThreadTest。
java源码类MyThread扩展线程{ 私人int票=10; 公共空间run () { for (int i=0; i<20;我+ +){ 如果(this.ticket> 0) { System.out.println (this.getName() +”卖票:票”+ this.ticket——); } } } }; 公开课ThreadTest { 公共静态void main (String [] args) {//启动3个线程t1、t2、t3;每个线程各卖10张票! MyThread t1=new MyThread (); MyThread t2=new MyThread (); MyThread t3=new MyThread (); t1.start (); t2.start (); t3.start (); } } >之前运行结果
Thread-0卖票:ticket10
引用>
线程1卖票:ticket10
线程2卖票:ticket10
线程1卖票:ticket9
Thread-0卖票:ticket9
线程1卖票:ticket8
线程2卖票:ticket9
线程1卖票:ticket7
Thread-0卖票:ticket8
线程1卖票:ticket6
线程2卖票:ticket8
线程1卖票:ticket5
Thread-0卖票:ticket7
线程1卖票:ticket4
线程2卖票:ticket7
线程1卖票:ticket3
Thread-0卖票:ticket6
线程1卖票:ticket2
线程2卖票:ticket6
线程2卖票:ticket5
线程2卖票:ticket4
线程1卖票:ticket1
Thread-0卖票:ticket5
线程2卖票:ticket3
Thread-0卖票:ticket4
线程2卖票:ticket2
Thread-0卖票:ticket3
线程2卖票:ticket1
Thread-0卖票:ticket2
Thread-0卖票:ticket1Runnable简介
可运行是一个函数式接口,该接口中只包含了一个运行()方法。它的定义如下:
@FunctionalInterface 公共接口可运行{ 公共抽象空运行(); } >之前可运行的作用,实现多线程。我们可以定义一个类一个实现运行的接口,然后,通过新线程(新())等方式新建线程。
RunnableTest。
java源码类MyThread实现Runnable { 私人int票=10; 公共空间run () { for (int i=0; i<20;我+ +){ 如果(this.ticket> 0) { System.out.println (Thread.currentThread () . getname() +”卖票:票”+ this.ticket——); } } } }; 公开课RunnableTest { 公共静态void main (String [] args) { MyThread太=new MyThread ();//启动3个线程t1、t2、t3(它们共用一个可运行的对象),这3个线程一共卖10张票! 线程t1=新线程(mt); 线程t2=新线程(mt); 线程t3=新线程(mt); t1.start (); t2.start (); t3.start (); } } >之前运行结果
Thread-0卖票:ticket10
引用>
线程2卖票:ticket8
线程1卖票:ticket9
线程2卖票:ticket6
Thread-0卖票:ticket7
线程2卖票:ticket4
线程1卖票:ticket5
线程2卖票:ticket2
Thread-0卖票:ticket3
线程1卖票:ticket1线程和可运行的异同点
:都是“多线程的实现方式”。
:
线程是类,而运行的是接口,线程本身是实现了Runnable接口的类。我们知道“一个类只能有一个父类,但是却能实现多个接口”,因此可运行具有更好的扩展性。
此外,可运行还可以用于“资源的共享”。即,多个线程都是基于某一个可运行的对象建立的,它们会共享Runnable对象上的资源。
通常,建议通过“Runnable”实现多线程!更多的java相关内容感兴趣的读者可查看本站专题:《java进程与线程操作技巧总结》,《java数据结构与算法教程》、《java操作DOM节点技巧总结》,《java文件与目录操作技巧汇总》和《java缓存操作技巧汇总》
Java并发编程之常用的多线程实现方式分析