首页 > 其他分享 >多线程

多线程

时间:2023-07-03 22:55:59浏览次数:36  
标签:执行 cpu 并发 线程 切换 多线程 CPU

扩展:tomcat最大并发连接数 200 个

1. 什么是进程?什么是线程?

进程包含线程,一个进程挂了,线程也就挂了,一个线程挂了,其他线程不受影响,线程之间是独立的

2. 单核CPU和多核CPU

一个CPU可以包含多个核心,一个核心只能同时执行一个线程

3. 线程切换

从保存线程A的状态再到切换到线程B时,重新加载线程B的状态的这个过程就叫 上下文切换。而上下文切换时也会消耗cpu时间。

4. 线程消耗

上下文切换消耗

线程创建和消亡的开销

线程需要保存维持线程本地栈(一个线程会创建一个栈),会消耗内存

5. 并行和并发

并行在同一时间始终一起执行

并发(concurrent):多个任务(进程、线程)同时发起。不能同时执行的(只有一个 cpu),要求同时执行。就只能在某个时间片内,将多个任务都有过执行。一个cpu在不同 的任务之间,来回切换,只不过每个任务耗费的时间比较短,cpu的切换速度比较快,所以 可以让用户感觉就像多个任务在同时执行。

并发的本质:不同的线程 来回切换

6. 创建线程的四种方式:

1)继承Thread类

 

2)实现Runnable接口

3)实现Callable接口

4)  线程池(其实线程池里面的线程就是通过实现Runable或者Callable创建的线程放入线程池中的)

 

标签:执行,cpu,并发,线程,切换,多线程,CPU
From: https://www.cnblogs.com/lbc0612/p/17524375.html

相关文章

  • java中多线程synchronized锁升级的原理是什么?
    在Java中,synchronized关键字用于实现线程之间的同步,确保多个线程对共享资源的访问是有序的。当一个线程获取到对象的锁时,其他线程将被阻塞,直到该线程释放锁。Java中的锁升级是指JVM对synchronized锁的优化过程。为了提高程序的性能,JVM使用了不同的锁状态。具体的锁状态如下:无锁状态......
  • c++实现多线程消息通信队列
    #ifndef_SYNC_SIMPLEQUEUE_QUEUE_HPP_#define_SYNC_SIMPLEQUEUE_QUEUE_HPP_#include<queue>usingnamespacestd;namespaceutility{template<typenameT>classSyncSimpleQueue{public:voidput(constT&msg){std::uniqu......
  • 多线程避免使用SimpleDateFormat及替代方案
    先来看一个多线程下使用例子,看到运行结果会出现异常:importjava.text.DateFormat;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.Random;importjava.util.concurrent.ExecutorService;importjava.util.concurrent.Executors;publicclass......
  • 创建多线程程序两种方式的区别
    1、使用实现Runnable接口的方式创建多线程程序,可以避免单继承的局限性a.类继承了Thread类,就不能在继承其他的类了b.类实现了Runnable接口,还可以继承其他的类2、使用实现Runnable接口的方式创建多线程程序,可以把设置线程任务和开启线程进行解耦(解除了耦合性,增强......
  • 浅谈一下c#多线程编程
    概念线程:线程是操作系统能够进行运算调度的最小单位,被包含在进程之中,是进程中的实际运作单位。同步:一定要等任务执行完了,得到结果,才执行下一个任务。如果程序执行耗时操作时会阻塞线程。应用场景UI与I/O:UI发出I/O操作,I/O操作是费时任务计算密集型工作(CPU-boun......
  • MFC中使用多线程
    一、在MFC中使用多线程,可以通过CWinThread类来实现。下面是一个简单的示例,演示了如何在MFC应用程序中创建和使用多线程:在你的MFC应用程序中包含头文件"afxmt.h",该头文件包含了多线程相关的类和函数。创建一个派生自CWinThread的自定义线程类。示例代码如下:classMyThrea......
  • 多线程
          ......
  • C多线程
          ......
  • 多线程
    并发和并行并行:在同一时刻,有多个指令在多个CPU上同时执行。并发:在同一时刻,有多个指令在单个CPU上交替执行。进程和线程进程:就是操作系统中正在运行的一个应用程序。独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位。动态性:进程的实质是程序......
  • Java并发(十二)----线程应用之多线程解决烧水泡茶问题
    1、背景统筹方法,是一种安排工作进程的数学方法。它的实用范围极广泛,在企业管理和基本建设中,以及关系复杂的科研项目的组织与管理中,都可以应用。怎样应用呢?主要是把工序安排好。比如,想泡壶茶喝。当时的情况是:开水没有;水壶要洗,茶壶、茶杯要洗;火已生了,茶叶也有了。怎么办?办法甲......