-
Java基础回顾 —线程概念
- 什么是线程:
程序中单独顺序的流控制,线程本身不能运行,只能用于程序中。
- 多线程:
单个程序中可以同时运行多个不同的线程执行不同的任务。
- 多线程编程的目的:
最大限度的利用CPU资源。
- java中如果我们自己没用产生线程,那么系统就会给我们产生一个线程(主线程,main方法救灾主线程上运行),我们的程序都是由线程来执行的。
- 进程:执行中的程序(程序是静态概念,进程是动态概念。)
tips1: 进程是程序的一次动态执行过程,从代码加载、执行到执行完毕的一个完整过程,也是进程从产生、发展到消亡的过程。
- 一个进程可以包含 一个或多个线程。
- 一个程序实现多个代码同时交替运行就需要产生多个线程。
- CPU 随机的抽出时间,让我们的程序一会做这件事情,一会做另外一件事情。
- java内置支持多线程编程。
多线程程序包含两条或两条以上并发运行的部分,把程序中每个这样的部分叫作一个线程Thread。
每个线程都有独立的执行路径,因此 多线程是多任务处理的一种特殊方式。
- 多任务处理被所有的现代操作系统所支持,多任务处理有 两种截然不同的类型:
基于进程的和基于线程的.
- 基于进程的多任务处理:
进程Process本质是一个执行的程序,因此其特点是允许你的计算机同时运行两个或更多程序。因此程序是调度程序所分派的最小代码单位。 由于CPU具备分时机制,所以每个进程都能循环获得自己的CPU时间片。且CPU执行速度非常快,使得所有进程好像同时运行一样。
- 基于线程的多任务处理:
线程是最小的执行单位。意味着一个程序可以同时执行两个或多个任务的功能。
多线程就是一个进程在执行过程中可以产生多个线程,这些线程可以同时存在、同时运行。
- 线程与进程之间的区别:
多个进程之间的内部数据和状态都是完全独立的。而多线程是共享一块内存空间和一组系统资源,有可能互相影响。
线程本身的数据通常只有寄存器数据,以及一个程序执行时使用的堆栈,所以线程的切换比进程切换的负担要小。
- 线程的实现:
java中通过run方法为线程指明要完成的任务,有两种技术来为线程提供run方法:
继承Thread类并重写run 方法( 必须调用start方法)。
通过定义实现Runnable接口的类进而实现run方法。
- start() 方法启动线程,首先为线程的执行准备系统资源,然后再去调用run方法。
- 一个进程至少包含一个线程。
Java运行时至少启动两个线程:一个main线程和另一个垃圾收集线程
注意:主线程有可能先执行结束,其他线程不会受到影响,不会随着主线程的结束而结束。
- 对于单核CPU来说,某个时刻只能有一个线程执行(微观串行),从宏观角度来看,多个线程同时执行(宏观并行)。
- 对于双核或者双核以上的CPU来说,可以真正做到微观并行。
Git Thread code
-
相关阅读:
新手Android开发:onclicklistener到底怎么用?
Myeclipse中web project 与java project区别
<jsp:directive.page import=""/>的用法和解释
怎样在myeclipse下,打开已有的项目
有史以来最简单的三层实例(C#)
show()跟showdialog()的区别
献给和我一样的Java初学者——用UltraEdit代替“笨重”的IDE,实现轻巧编程!
数据库连接错误——请求失败或服务器未及时响应
说说二级C++
十一张图让你轻松学会用VS打包
-
原文地址:https://www.cnblogs.com/nextStep/p/6691257.html
Copyright © 2020-2023
润新知