
多线程
文章平均质量分 71
m0_52860081
这个作者很懒,什么都没留下…
展开
-
c++多线程四
如果不使用互斥锁,线程1打印了一个字符,休眠后执行线程2,线程2打印一个字符,这样就不能完整的打印线程1和线程2的字符串,打印出的字符串是混乱的。如果使用了互斥锁保护2个线程共享的打印函数printer(),线程1拿到互斥锁后执行printer()打印函数打印一个字符,之后休眠1秒,这是切换到线程2,因为互斥锁已经被线程1上锁,线程2将阻塞,直到线程1的字符串打印完整后主动释放互斥锁后线程2才会被唤醒。这是本章主要讨论的东西。互斥锁的含义不再具体解释,这里只描述如何在pthread下使用互斥锁。原创 2024-02-23 17:18:18 · 571 阅读 · 0 评论 -
c++多线程三
POSIX Threads简称Pthreads,Pthreads是线程的POSIX标准,该标准定义了一套C程序语言的类型、函数和常量。定义在pthread.h头文件和一个线程库里,大约有100个API,所有API都带有"pthread_"前缀,可以分为4大类:线程管理(Threadmanagement):包括线程创建(creating)、分离(detaching)、连接(joining)及设置和查询线程属性的函数等。互斥锁(Mutex):"mutual。原创 2024-02-23 16:04:01 · 1798 阅读 · 0 评论 -
c++多线程二
线程同步是指在多线程编程中,为了保证多个线程按照某种特定的方式正确、有序地执行,需要进行线程间的协作与同步。在多线程编程中,当多个线程共享同一份资源时,由于线程的执行顺序是不确定的,因此会存在一些并发问题,如死锁、竞态条件、资源争用等问题。为了避免这些问题,需要对线程进行同步。线程同步实际上就是通过线程之间的协作,使得线程能够按照一定的顺序来访问共享资源,从而避免并发问题的发生。常用的线程同步机制有互斥锁、信号量、条件变量等。原创 2024-01-10 11:23:21 · 761 阅读 · 0 评论 -
c++多线程一
每个进程中访问临界资源的那段代码称为临界区(Critical Section)(临界资源是一次仅允许一个进程使用的共享资源)。每次只准许一个进程进入临界区,进入后不允许其他进程进入。不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进行访问。在C++中,EnterCriticalSection函数用于进入一个临界区,并锁定该临界区,防止其他线程进入临界区。的初始化后才能使用,而且必须确保所有线程中的任何试图访问此共享资源的代码都处在此临界区的保护之下。如果有这临界保护,这要么为全a,要么为全c。原创 2024-01-09 17:08:36 · 365 阅读 · 0 评论