多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理或同时多线程处理器。在一个程序中,这些独立运行的程序片段叫作“线程”(thread),利用它编程的概念就叫作“多线程处理” 。
程序:
程序是一个指令序列。程序是静态的。进程:
进程就是执行程序的一次性过程。相当于一整条高速公路。一个线程可以包含多个线程,当然,最少有一个线程,不然这个进程毫无意义线程:
线程相当于独立的执行路径。相当于高速公路的每一条车道。在程序执行中,即使你没有创建线程,也会有默认的线程,如:main,gc等。main() 函数 被称为主线程,是整个程序的入口。在一个线程当中,如果有多个进程,具体的调度是无法人为干预的,是由cpu来调度的。多个线程对同一个资源进行操作时,可能会发生错误,需要加入并发控制。上面都是一些理论的知识,有些枯燥,理解记忆即可。。
实现方式:
继承tread类重写run方法创建实例调用start()方法实现代码案例:
/** * 多线程的实现方式一 :继承tread类,并重写run方法,创建实例调用start方法 */public class testtread extends thread{ //idea中快速重现父类方法的快捷键是 ctrl + o @override public void run() { system.out.println("我是一个线程呀~~~~"); } public static void main(string[] args) { //实例化线程实现类 testtread testtread = new testtread(); //使用start()方法启动该线程,无需调用run方法,因为在线程中他会默认调用run()方法,也就是启动后会自动执行run()方法 testtread.start(); }}
执行结果如下:
代码实现案例:
/** * 多线程的实莫非定律现方式二 :实现runnable接口,并重写run方法,创建thread时作为参数传入,调用start方法 */public class testrunnable implements runnable{ public static void main(string[] args) { //分开写 testrunnable testrunnable = new testrun安徽省师范大学nable(); thread tread = new thread(testrunnable); tread.start(); //简写 new thread(new testrunnable()).start(); } //和thread一样,需要重写run()方法 @override public void run() { system.out.println("我也是一个线程呀~~~"); }}
执行结果如下:
代码实现案例:
/** * 多线程的实现方式三:实现callable接口,重写call方法 * 需要有返回值 */public class testcallable implements callable<string> { public static void main(string[] args) throws executionexception, interruptedexception { testcallable testcallable = new testcallable(); //创建执行服务,这是相当于线程池,本篇文章不展开讲,后面会详细介绍这几个参数和使用方法 executorrvice rvice = executors.newfixedthreadpool(1); //执行 future<string> result = rvice.submit(testcallable); //可获取线程的返回值 string result1 = result.get(); system.out.println("我是线程的返回值:"+result1); //停止线程 rvice.shutdownnow(); } @override public string call() throws exception { system.out.println("我当然也是一个线程啦啦啦啦德玛西亚~~~"); return "我镁燃烧是一个线程"; }}
执行结果如下:
本文发布于:2023-04-04 06:44:32,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/7b348cd71a926c67ab4f12ebda5a0809.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:java多线程有几种实现方式(免费分析这5种实现方式).doc
本文 PDF 下载地址:java多线程有几种实现方式(免费分析这5种实现方式).pdf
留言与评论(共有 0 条评论) |