(8)什么是线程(如何开启线程)

为什么会出现线程

进程的缺点:

1、非常消耗资源,计算机不能无限开启子进程

2、如果开了过多的进程,cpu的切换进程的模式下是非常耗时的

因为进程的缺点,线程的出现就是为了解决进程的缺点,线程的开销小于进程

1、所以线程就是轻量级的进程

2、一个进程里面至少有一个线程

3、线程就是具体干活的,执行任务的

PS:进程相当于一座工厂,线程相当于干活的人

PS:进程是一个资源的实体单位,而cpu操作的最小单位是线程

理论案例:

QQ是一个主进程

QQ内有几个功能

1、聊天

2、支付

3、视频

PS:如果没有线程,就要开3个进程,这样计算机的消耗就会变大

PS:线程的启动速度要高于进程的速度

开启QQ主进程后,下面所有的功能就交给线程去执行,这样既对计算机的资源消耗低了,而且速度也快了

线程的好处

1、线程的开启速度快于进程

2、一个进程下的线程和线程之间是共享进程的资源

3、cpu在线程之间的切换速度远快于进程

开启线程的方式

from multiprocessing import Peocess

原文地址:https://www.cnblogs.com/shizhengquan/p/10262453.html

时间: 2025-01-18 00:29:37

(8)什么是线程(如何开启线程)的相关文章

并发编程(四)--线程、开启线程、守护线程、线程互斥锁

一.什么是线程 进程其实一个资源单位,而进程内的线程才是cpu上的执行单位,线程其实指的就是代码的执行过程 二.进程和线程的区别 1. 同一进程下的多个线程共享该进程内的资源2. 创建线程的开销要远远小于进程 三.利用Thread类开启线程的两种方式 1.Thread类 Thread实例对象的方法 # isAlive(): 返回线程是否活动的. # getName(): 返回线程名. # setName(): 设置线程名. threading模块提供的一些方法: # threading.curr

线程及开启方式

目录 线程及开启方式 线程 方式一(继承Thread类) 方式二(实现Runnable接口) 方式三(实现Callable接口) 线程及开启方式 线程 进程:正在执行的程序 线程:具有完成独立任务的一条执行路径 多线程:一个程序拥有多条线程 多线程的好处: 可以提高进程和CPU的使用率 能够让多个程序看起来像同时执行 防止单线程出现阻塞 用于处理耗时任务 题外话:关于并发和并行(以后会详写) 并发:在一段时间间隔内处理多个事务的能力: 并行:在某一时刻,同时处理多个事务的能力: 方式一(继承Th

C#开启线程的四种方式

1.异步委托开启线程 public class Program { public static void Main(string[] args) { Action<int, int> a = add; a.BeginInvoke(3, 4, null, null); Console.WriteLine("执行线程"); Console.ReadKey(); } static void add(int a, int b) { Console.WriteLine(a + b);

NSOperation开启线程情况分析

如果NSOperation中只有一个任务,且调用start方法不会开启线程,start默认在当前线程执行. 如果NSOperation中只有一个任务,添加到队列当中会开启线程,如果是主队列则不会开启新的线程 一个NSOperation中添加了多个任务,且调用start方法,开启新的线程. 多个NSOperation,且每个NSOperation中只有一个任务,且每个NSOperation调用start方法 ,不会开启新的线程. 多个任务,添加到一个队列当中, 多个任务添加到主队列

Java开启线程的两种方式

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.ios培训..Net培训</a>.期待与您交流!------ Java开启线程的两种方式: 方式一:成为线程(Thread)的儿子,即继承Thread类简单代码如下:class Student extends Thread{Student(String name){super(name);}public

dispatch_sync: 同步,不具备开启线程的能力 dispatch_async:异步,具备开启线程的能力

dispatch_sync: 同步,不具备开启线程的能力 dispatch_async:异步,具备开启线程的能力 并发队列:多个任务可以同时执行 穿行队列:一个任务执行完后,再执行下一个任务. core foundation 和foundation 框架之间的数据转换需要桥接 _bridge   NSstring   CFstring 导航控制器 push 进入到下一个控制器 xib 里面不要放多个对象 ,可能会返回程别的对象    [对象 superview]:可能会出错    xib一般用来

Day10 多线程理论 开启线程

多线程: 多线程和多进程的不同是他们占用的资源不一样, 一个进程里边可以包含一个或多个进程, 进程的开销大,线程的开销小. 打个比方来说:创建一个进程,就是创建一个车间.创建一个线程,就是在一个车间创建一个流水线. 怎么去开启一个线程: 方法一(直接用默认的类): 1 开启线程的方式一:使用替换threading模块提供的Thread 2 from threading import Thread 3 from multiprocessing import Process 4 5 def task

开启线程池和进程池

线程与进程的应用场合很多,主要处理并发与多任务.然而,当开启的线程与进程过多时,系统的开销过多会造成性能低下甚至崩溃.这时,希望出现一种方法能规定只能执行指定数量线程与进程的策略.特别是针对不知道要开启多少线程或进程,而有可能出现线程或进程过多的情况.于是,线程池与进程池出现了.python3以后增加了concurrent.futures模块,为异步执行提供了高级的接口. 线程池 concurrent.futures.ThreadPoolExecutor(max_workers=None, th

ios 开启线程定时请求某个方法

- (void)startLoop { [NSThread detachNewThreadSelector:@selector(loopMethod) toTarget:self withObject:nil]; } - (void)loopMethod { [NSTimer scheduledTimerWithTimeInterval:3.0f target:self selector:@selector(requestIsHaveReview) userInfo:nil repeats:YE

java_线程的开启与结束(可用于android)

package testJavaAll; import java.util.Timer; import java.util.TimerTask; /** * 测试线程开启和停止cancel的 * * 2014年10月21日 10:34:57 * * yjbo */ public class testThread { Timer timer; private int x = 0; public testThread(int seconds, int seconds2) { timer = new