
多线程
羽生少年
格物致知,知行合一!
展开
-
多线程,到底该设置多少个线程?
多线程,到底该设置多少个线程? - java懒洋洋 - 博客园 (cnblogs.com)原创 2022-03-14 08:11:42 · 562 阅读 · 0 评论 -
区域锁(Scoped locking)
线程同步之利器(2)——区域锁(Scopedlocking)_山里佬_新浪博客原创 2021-12-17 17:13:11 · 454 阅读 · 0 评论 -
【Linux多线程】三个经典同步问题
在了解了《同步与互斥的区别》之后,我们来看看几个经典的线程同步的例子。相信通过具体场景可以让我们学会分析和解决这类线程同步的问题,以便以后应用在实际的项目中。一、生产者-消费者问题问题描述:一组生产者进程和一组消费者进程共享一个初始为空、大小为 n 的缓冲区,只有缓冲区没满时,生产者才能把消息放入到缓冲区,否则必须等待;只有缓冲区不空时,消费者才能从中取出消息,否则必须等待。由于缓冲区是临界资源,它只允许一个生产者放入消息,或者一个消费者从中取出消息。分析: 关系分析:生产者和消费者.原创 2021-12-13 16:56:13 · 629 阅读 · 0 评论 -
linux多线程信号总结
linux多线程信号总结-businiaowyf-ChinaUnix博客原创 2021-10-11 13:19:51 · 149 阅读 · 0 评论 -
无锁队列。
无锁队列的实现 | 酷 壳 - CoolShell原创 2021-09-27 21:08:54 · 99 阅读 · 0 评论 -
死锁问题案例分析解决
C++11 - thread多线程编程,线程互斥和同步通信,死锁问题分析解决_大秦坑王的专栏-优快云博客原创 2021-06-18 11:05:29 · 212 阅读 · 0 评论 -
GDB多线程调试常用命令
多线程调试(gdb) info threads:查看GDB当前调试的程序的各个线程的相关信息(gdb) thread threadno:切换当前线程到由threadno指定的线程break filename:linenum thread all 在所有线程相应行设置断点,注意如果主线程不会执行到该行,并且启动all-stop模式,主线程执行n或s会切换过去set scheduler-locking off|on\step 默认off,执行s或c其它线程也同步执行。on,只有当前相称执行。ste原创 2021-06-17 13:45:01 · 582 阅读 · 0 评论 -
Linux线程退出、资源回收、资源清理的方法
首先说明线程中要回收哪些资源,理解清楚了这点之后在思考资源回收的问题。1、子线程创建时从父线程copy出来的栈内存; 线程退出有多种方式,如return,pthread_exit,pthread_cancel等;线程分为可结合的(joinable)和 分离的(detached)两种,如果没有在创建线程时设置线程的属性为PTHREAD_CREATE_DETACHED,则线程默认是可结合的。可结合的线程在线程退出后不会立即释放资源,必须要调用pthread_join来显式的结束线程。分离的线程在线程退原创 2021-06-12 19:49:15 · 773 阅读 · 0 评论 -
linux查看进程和线程的命令
1.任务:获得进程信息:ps命令,或者top命令,它能显示当前运行中进程的相关信息,包括进程的PID。ps命令能提供一份当前进程的快照。如果想状态可以自动刷新,可以使用top命令。2.任务:获得线程信息:输入下列命令:# ps -eLf# ps axms1、查找指定进程 ps -ef | grep mmp-front //mmp-front是进程关键字1第一条记录是查找出的进程;第二条结果是grep进程本身,并非真正要找的进程。3、不显示本身..原创 2021-05-19 09:40:30 · 3847 阅读 · 0 评论 -
C++11多线程编程-两个进程轮流打印1~100
这是经典的同步互斥问题,遵循原则:1、条件变量需要锁的保护;2、锁需要条件变量成立后,后重新上锁;参考代码://notify_one()(随机唤醒一个等待的线程)//notify_all()(唤醒所有等待的线程)//Create By@herongwei 2019/09/10#include <bits/stdc++.h>#include <mutex>#include <thread>#include <condition_v原创 2021-05-06 16:18:18 · 877 阅读 · 1 评论 -
unique_lock详解
C++语法学习笔记四十七:unique_lock详解 - osc_t6qz550e的个人空间 - OSCHINA - 中文开源技术交流社区原创 2021-04-27 11:26:53 · 373 阅读 · 0 评论 -
c++ 如何给 “运行中“ 的线程传递数据;
1:场景是有一个线程池,我需要将任务队列中发生读写事件的fd拿出来传递到线程池中正常情况下创建线程时可以指定参数,比如这样std::thread t(func,arg1,arg2,...)但是我的fd是在线程已经创建好之后传入,那该怎么办?线程之间传递数据并不需要什么特殊的手段,因为线程的大部分数据都是共享的,全局变量、静态全局变量和通过指针传递的数据都是可以直接在线程之间共享的。所以最简单的方法就是定义一个全局的队列,这样每个线程都可以访问到这个队列,主线程把fd写入队列,线程池中.原创 2021-03-25 08:34:02 · 1006 阅读 · 0 评论 -
线程执行顺序之一
一般情况下,线程在主函数创建,函数分配在栈区,遵循先进后出规则,先创建后运行#include <stdio.h>#include <unistd.h>#include <pthread.h>int var = 8;void *thread_1(void *arg){ while(1) { printf("this is my new thread1: var++\n"); var++; ...原创 2020-07-27 12:27:48 · 294 阅读 · 0 评论 -
Linux的进程/线程间通信方式总结
Linux系统中的进程间通信方式主要以下几种:同一主机上的进程通信方式* UNIX进程间通信方式: 包括管道(PIPE), 有名管道(FIFO), 和信号(Signal)* System V进程通信方式:包括信号量(Semaphore), 消息队列(Message Queue), 和共享内存(Shared Memory)网络主机间的进程通信方式* RPC: Remote Procedure Call 远程过程调用* Socket: 当前最流行的网络通信方式, ...原创 2020-07-10 12:30:55 · 251 阅读 · 0 评论 -
Linux多线程之线程同步(条件变量)
https://www.cnblogs.com/secondtonone1/p/5580203.html原创 2020-07-10 08:25:05 · 132 阅读 · 0 评论 -
C++11thread之detach()与join()的函数对比
在声明一个std::thread对象之后,都可以使用detach和join函数来启动被调线程,区别在于两者是否阻塞主调线程。(1)当使用join()函数时,主调线程阻塞,等待被调线程终止,然后主调线程回收被调线程资源,并继续运行;(2)当使用detach()函数时,主调线程继续运行,被调线程驻留后台运行,主调线程无法再取得该被调线程的控制权。当主调线程结束时,由运行时库负责清理与被调线程相关的资源。...原创 2020-07-05 15:44:26 · 446 阅读 · 0 评论 -
多线程底层执行原理
说道底层运行,那么是不是就是需要依靠CPU啊;那,各位之前有没有听过一句话叫做,一个CPU在同一个时间片只能执行一个程序;什么意思呢?就是,你的程序是不是都运行在一个CPU上啊,那你真正一个CPU在同一个时间片里是不是只能执行一个程序呀,那这个程序究竟要执行那个程序,是不是就需要通过线程之间时间片的一个争抢;时间片:微小的时间段;多线程说白了就是时间片的争夺,那个线程获取了时间...原创 2020-04-12 19:39:54 · 2015 阅读 · 0 评论