40 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | ||
| title: Threads
 | ||
| localeTitle: 主题
 | ||
| ---
 | ||
| ## 主题
 | ||
| 
 | ||
| 给操作系统执行的一系列程序指令。它是可以执行的最小同步序列。作为同步,线程中的指令是线性的并且一个接一个地执行。如果程序具有多个线程,则整个程序可以是异步的,因为这些线程彼此独立地执行它们自己的指令(同时)。
 | ||
| 
 | ||
| 线程是操作系统用于将CPU表示为程序的抽象。机器代码或汇编语言中没有真正的线程概念。
 | ||
| 
 | ||
| 线程是编程的一种方式,可以同时执行多个任务。
 | ||
| 
 | ||
| 应该做的一个共同点是线程和进程之间的区别。一个线程可以说是一个过程的孩子。  
 | ||
| 在进程的上下文中可能存在任意数量的子线程。线程可以通过增加用于任务的CPU百分比来提高程序的执行速度。  
 | ||
| 请注意,大幅增加程序中的线程数可能会占用大量CPU资源,如果使用100%的CPU,则线程将不会影响执行速度。
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 假设您打开了多个程序 - 每个程序的CPU时间份额由与该程序关联的一个或多个线程表示。当操作系统的**调度程序**决定程序A运行时,操作系统将程序A的线程中的指令(或更准确,多路复用)提供给CPU,然后CPU运行这些指令。
 | ||
| 
 | ||
| 某个程序的线程包含该程序的一些或全部编译指令,以及CPU执行这些指令所需的一些信息。
 | ||
| 
 | ||
| **多线程**是一种编程概念,程序在执行期间生成多个线程,以便更快地执行任务。
 | ||
| 
 | ||
| 这是python中一个简单的多线程示例,它通过为每个print语句生成一个单独的线程来打印数字1到10。
 | ||
| ```
 | ||
| import threading 
 | ||
|  
 | ||
|  def print_number(number): 
 | ||
|     print(number) 
 | ||
|  
 | ||
|  if __name__ == "__main__": 
 | ||
|     for i in range(1, 11): 
 | ||
|         threading.Thread(target=print_number, args=(i,)).start() 
 | ||
| ```
 | ||
| 
 | ||
| #### 更多信息:
 | ||
| 
 | ||
| *   [主题(维基百科)](https://en.wikipedia.org/wiki/Thread_(computing))
 | ||
| *   [了解多线程](http://www.nakov.com/inetjava/lectures/part-1-sockets/InetJava-1.3-Multithreading.html) |