长篇干货建议收藏—话说java多线程那些事儿.docx
32页1、长篇干货,建议收藏话说java多线程那些事儿1、线程和进程的区分一个进程中包含多个线程,一个进程就相当于一个应用程序,一个应用程序底层就是cpu来运行的,比如我们的电脑同时打开了多个应用,表面看来像是在同时运行,实际上在同一时间只运行了一个应用程序,只不过cpu的运行速度非常快,会进行高速切换,让我们觉得是在同时进行。最经典的一个例子就是迅雷了,我们电脑打开迅雷相当于开了一个进程,当我们使用迅雷下载东西的时候,比如说,下载两部电影,那么在迅雷中就存在两个不同的执行路径,也就是有两个线程在同时做下载工作。所以,进程包含线程,相当于所有线程的集合。一个线程就是一个执行路径。为什么要用多线程?多线程的好处就是提高程序的效率。但是可能会影响性能。main是主线程,我们创建的线程叫做子线程,如果说一个项目中肯定有一个线程,那么这个线程就是主线程了。对于这个问题,到底该怎么理解或者说区分线程和进程的概念,再举一个非常贴切的例子,我们大多数人都用过扣扣吧,我们打开一个扣扣,其实就是开启了一个进程,然后我们发送一段文字,那就是开启了一个线程,我们再发送一天语音,那就是又开启了一个线程,那么在这个扣扣的
2、进程中就有发文字和语言两个线程了,当然,可能还有其他的线程!在知乎上有这么一个帖子,就是区分线程和进程的额,回答的也不少,可以看看线程和进程的区别是什么?那么,关于进程和线程的区别问题就到这!2、多线程的创建方式学习多线程,最基本的就是要会创建多线程了,常规来说创建多线程的方式应该有三种1. 继承Thread类2. 实现Runnable接口3. 匿名内部类在此之前很有必要说一下这个main,也就是在写Java程序中经常见到的主线程,代码表现形式就是 public static void main(String args) do. 这个main叫做主线程,是程序的入口,而且是由jvm也就是Java虚拟机创建的。下面具体说一下创建线程的三种方式首先是继承自Thread类的方式,看代码/* * 创建线程的我第一种方式 * 继承自Thread类 */class A extends Thread Override public void run() System.out.println(正在执行线程A。); 以上就是使用继承自Thread类的方式创建线程,这里的Thread实际上是实现了Runn
3、able接口再看这个Runnable接口因此,使用继承Thread类的方式创建线程需要实现run方法,实际的逻辑处理也是在这个run方法中实现的再看第二种创建线程的方式就是实现Runnable接口的方式,同样,先来看代码/* * 创建线程的第二种方式 * 实现Runnable接口 */class B implements Runnable Override public void run() System.out.println(正在执行线程B、); 之前就说过,Runnable接口中有一个抽象run方法,所以,对于实现Runnable接口的方式也是需要实现run方法的,同样的逻辑处理也是在run中,接下来看最后一种创建线程的方式,通过匿名内部类的方式。 public static void main(String args) System.out.println(主线程在执行、); /* * 线程创建的第三种方式 * 匿名内部类 */ new Thread(new Runnable() Override public void run() System.out.println(匿名内
4、部类执行的线程); ).start(); 这里要注意,匿名内部类是要写在方法之中的,这里写在主方法中,可以看到,这个线程是通过新建一个Thread对象,然后在传入一个Runnable,之后也是实现Run方法,然后调用线程的start方法即可开启此线程在最后一种使用匿名内部类的方式创建线程中调用了start开启线程,那么,对于其他两种创建线程的方式该如何启动线程呢? /执行线程B B b = new B(); Thread thread = new Thread(b); thread.start(); /执行线程A A a = new A(); a.start();可以看到,都是调用线程对象的start方法从而开启线程,这里有些人会有些疑问,我们随便看一个/* * 创建线程的我第一种方式 * 继承自Thread类 */class A extends Thread Override public void run() System.out.println(正在执行线程A。); 就拿这个线程来说,为什么不可以这样也就是说在线程对象中是有一个run方法的,为什么执行线程不可以直接调用这个run
《长篇干货建议收藏—话说java多线程那些事儿.docx》由会员A***分享,可在线阅读,更多相关《长篇干货建议收藏—话说java多线程那些事儿.docx》请在金锄头文库上搜索。
SAP UI5应用里类型为Edm.DateTime的日期控件设计原理.docx
SAP UI5 Web Component for React的图标和图片处理.docx
SAP UI5应用和Hybris Commerce的国际化(internationalization)支持.docx
SAP UI5 Web Component里最简单的React列表控件的用法.docx
SAP UI5 Connection manager.docx
SAP UI5 jQuery.sap.setObject.docx
SAP WebClient UI drop down list(下拉列表)的一个故障和解决方法.docx
SAP UI5 GM6 require sap.ui.core.Core.docx
SAP UI5应用如果遇到数据绑定问题时应该如何自己定位问题?.docx
SAP云平台上的Mendix服务 - 如何注册帐号.docx
SAP Odata filter的语法.docx
SAP UI5和React的页面渲染性能比较.docx
SAP UI5 setModel of scFld Controller.docx
SAP Netweaver后台作业的几种状态.docx
SAP UI5 Opportunity popup.docx
SDL_FillRect函数.docx
SDL_Rect结构.docx
SAP UI5 component container initialized in index html.docx
SAP UI5应用里的列表处理.docx
SAP UI5 ResponsiveGridLayout.docx
2024-01-15 24页
2024-01-15 15页
2024-01-08 89页
2024-01-08 72页
2023-08-31 3页
2023-08-31 2页
2023-07-10 3页
2023-07-10 3页
2023-07-10 3页
2023-07-10 2页