![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
answer_yym
且随疾风前行
展开
-
笔试题东方国
c++基础面试1、构造析构顺序。#include<iostream>#include<vector>using namespace std;class A {public: A() { cout << "A is created" << endl; Print(); } ~A() { cout << "A is deleted" << endl; } virtual void Print() {原创 2021-10-18 17:04:59 · 78 阅读 · 0 评论 -
加锁解决多线程(2个)互斥访问全局变量
1、描述;两个线程同时访问同一个全局变量counter的时候需要加互斥锁2、关键字互斥锁:互斥锁互斥锁是用来防止多个线程同时访问共享资源对象的机制,在同一时间只有一个线程可以拥有一个特定的锁对象,其他线程如果尝试获取锁会阻塞直到锁资源被释放或直接返回失败。3、思路1 全局变量的时候初始化一个全局变量的锁,2 在构造子线程的回调函数中把处理这个全局变量的代码段开始时:获取这个锁对象。代码段结束,解锁(释放这个锁对象)。6、code#include <pthread.h>#原创 2021-10-09 11:02:44 · 3845 阅读 · 0 评论 -
单例模式饿汉+懒汉
懒汉式:线程不安全:想要线程安全就得加锁:3个成员:一个私有的构造函数一个私有的静态的指针。一个共有的静态外部访问接口函数。使用时机:访问量不大,使用懒汉时,以时间换空间。饿汉式:访问量大,多线程。以空间换时间。class Singleton{private: static Singleton* p; // 一个私有静态变量,确保只有一个实例 SingleLeton(){} // 私有的构造函数,确保只能单例类自己创建实例public: static Sin原创 2021-10-09 09:58:20 · 75 阅读 · 0 评论 -
多线程顺序打印
1、描述我们提供了一个类:public class Foo {public void first() { print(“first”); }public void second() { print(“second”); }public void third() { print(“third”); }}三个不同的线程 A、B、C 将会共用一个 Foo 实例。一个将会调用 first() 方法一个将会调用 second() 方法还有一个将会调用 third() 方法请设计修改程序,以确保原创 2021-09-19 21:30:00 · 296 阅读 · 0 评论 -
手撕:多线程顺序打印123,ABC循环打印10次
1、描述题目:编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。2、解析:看到这题最开始的思路是想到了应该使用锁和条件变量的知识(貌似也只有对于lock类型的多线程编程大都使用这两种/(ㄒoㄒ)/~~),这题的关键点在于同步的问题,在这里我使用了一个flag全局变量,用来和条件变量控制同步,而在C++11中条件变量有两种方法notify_one和notify_all,多线程的话(3个及原创 2021-09-02 11:09:42 · 1131 阅读 · 0 评论