ICode9

精准搜索请尝试: 精确搜索
  • 2022-01-12_HWQ_012022-01-13 01:02:41

    2022-01-12  23:28:54   如何写一个socket  : RAII 资源获取就是初始化,WSAStartup 和WSACleanup 应该设计成类的静态方法,因为他们只需要在类的初始化和退出调用。 类除了保留对外的接口,内部用到的变量和方法对调用者不可见,这种习惯叫pimpl用法。 编译时指定规范: g++ -g -o te

  • Linux系统编程-(pthread)线程通信(互斥锁)2022-01-11 22:02:00

    这篇文章介绍Linux下线程同步与互斥机制–互斥锁,在多线程并发的时候,都会出现多个消费者取数据的情况,这种时候数据都需要进行保护,比如: 火车票售票系统、汽车票售票系统一样,总票数是固定的,但是购票的终端非常多。 互斥锁就是用来保护某一个资源不能同时被2个或者2个以上的线程

  • IOS 关于锁2022-01-11 12:30:00

    前言 为什么需要锁: 多条线程存在同时操作(删、查、读、写)同一个文件or对象or变量。如果不是同时或者不是同一个那就不用加锁了。关键变量:必须是“同时”,“同一事物” 自旋锁OSSpinLock 个人理解:就是一直等,忙等,一直while 到锁被解开,自旋锁不会让等待的线程进入休眠状态已经废弃

  • Linux系统编程-(pthread)线程通信(读写锁)2022-01-10 22:02:22

    1. 读写锁介绍 读写锁与互斥锁类似,读写锁比互斥锁有更高的并行性,读写锁特点如下: ​ 1. 读写锁有三种状态,读模式下加锁(共享)、写模式下加锁(独占)以及不加锁。 ​ 2. 一次只有一个线程可以占有写模式下的读写锁;但是多个线程可以同时占有读模式下的读写锁。 ​ 3. 读写锁在写加锁

  • Linux系统编程-(pthread)线程创建与使用2022-01-08 22:05:18

    1. 前言 前面文章介绍了Linux下进程的创建、管理、使用、通信,了解了多进程并发;这篇文章介绍Linux下线程的基本使用。 线程与进程的区别 (1)进程: 是操作系统调度最小单位。 Linux下可以通过ps、top等命令查看进程的详细信息。 (2)线程: 是进程调度的最小单位,每个进程都有一个主线

  • 关于线程-lpthread问题2022-01-03 02:31:56

    pthread_create函数编译时报错:undefined reference to 'pthread_create'由于pthread 库不是 Linux 系统默认的库,链接时需要使用静态库 libpthread.a;所以在编译使用pthread_create()创建线程的程序时,需要指定 -lpthread参数。例如:gcc thread.c -o thread -lpthread

  • 阅读redis源码的时候一些c知识2022-01-02 21:01:10

    c中的引用 之前了解c的时候,简单的看过,但是在阅读c源码的时候会突然出现这种。 #一个sds字符串+一个长度,是啥玩意? read(fd, c->querybuf+qblen, readlen); c中有两种引用->和.。 先看下-> ->是指向结构体成员运算符 ->所指向的是结构体或对象的首地址 ->的用处是使用一个

  • Linux c语言多线程while循环实验2022-01-01 21:02:59

    1.sleep(0)或者没有sleep /* thread_test.c */ #include <stdio.h> #include <stdlib.h> #include <pthread.h> #include <unistd.h> #define NUM_THREADS 4 pthread_mutex_t mutex; void *PrintHello(void *args) { int thread_arg;

  • 实验二 进程/线程基本编程练习(操作系统)2021-12-29 10:03:08

    (红色字体为分析) 【要求】所有练习题保留题目要求,在题目要求后面作答: 代码要求有注释,代码中适当标注关键代码为红色。 要有运行结果的截图。 每题最后应该有对程序的适当分析和总结! 注意格式排版,内容分析注意列条目,展开清楚地阐述。 1、分析理解多个进程的创建 1)若一个程序中有

  • valgrind内存泄露和线程竞态检测,Android岗面试12家大厂成功跳槽2021-12-26 17:06:16

    ==4832==    at 0x804847B: test (in /home/yanghao/Desktop/testC/testmem/tmp) ==4832==    by 0x804848D: main (in /home/yanghao/Desktop/testC/testmem/tmp) ==4832== ==4832== HEAP SUMMARY: ==4832==     in use at exit: 0 bytes in 0 blocks ==4832== 

  • 使用pthread_cond_t遇到的死锁问题2021-12-25 12:03:02

    使用上pthread_cond_t遇到的死锁问题  最近在一个项目中使用pthread_cond_t的时遇到一个死锁的问题,特记录分享一下。这个问题的使用场景很简单,客户端程序起两个线程,一个线程发送数据给服务器,另一个线程接收服务器的返回。发送线程向服务器发送一个数据报,然后等待服务器返回(用pt

  • Linux选择填空2021-12-22 20:30:50

    1.linux 中把分区和目录对应的过程叫做( )。 挂载 2.信号是在软件层次上对()机制的一种模拟, 是一种异步通信方式。 中断 3.用 GCC 编译过程可以被细分为四个阶段:( ) 预处理,编译,汇编,连接 4.编译有线程的文件要加( )参数。 -lpthread 5.父进程等待子进程的结束,可以使用的函数是(

  • linux互斥量pthread_mutex_t相关函数2021-12-18 11:05:27

    0. 头文件 #include <pthread.h>   1. 初始化 int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr); 简单的使用可以使用默认的属性初始化互斥量,第二个参数设置为NULL即可。   2. 销毁 int pthread_mutex_destroy(pthread_mute

  • Linux C 互斥锁的使用2021-12-17 20:01:40

    互斥锁的作用 保护共享数据: 在并发机制的情况下,有时候会有多个线程同时访问同一片数据,为了保护数据操作的准确性就需要通过加锁来进行保护。 保持操作互斥: 可能一个程序会有多个操作,但是同一个时间只能有一个操作被执行,例如a/b两个操作,如果a被执行,b就不能被执行,同理b被执行,a

  • 游双-Linux高性能服务器编程笔记2021-12-14 21:34:42

    #define MAX_THREADS 1 class Test { public: Test(): m_stop(false), s("Object exists.") { printf("ctor\n"); m_threads = new pthread_t[MAX_THREADS]; for (int i = 0; i < MAX_THREADS; i++) { pthread_create(m_threads + i, NULL

  • 线程的几种锁及基本操作2021-12-09 10:31:18

    我们先来看一段代码: #include <stdio.h> #include <stdlib.h> #include <pthread.h> //创建两个线程,分别对两个全变量进行++操作,判断两个变量是否相等,不相等打印 int a = 0; int b = 0; // 未初始化 和0初始化的成员放在bbs pthread_mutex_t mutex; void* route() {

  • linux互斥锁---一个简单的计程车线程2021-12-07 21:02:03

    实现一个计程车的流程,打车,taxi,上车,到达 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <pthread.h> //定义头文件 pthread_cond_t taxicond = PTHREAD_COND_INITIALIZER; /*初始化条件变量*/ pthread_mutex_t taximutex = PTHREAD_MUTEX_

  • 【Linux Server】三、Linux多线程开发2021-12-05 18:02:41

    三、Linux多线程开发 线程概述 与进程(process)类似,线程(thread)是允许应用程序并发执行多个任务的一种机制。一个进程可以包含多个线程。同一个程序中的所有线程均会独立执行相同程序,且共享同一份全局内存区域,其中包括初始化数据段、未初始化数据段,以及堆内存段。(传统意义上的 U

  • linux--(2)线程的清理2021-12-02 09:35:01

    线程的清理函数 类似于进程的终止函数atexit()。 include <pthread.h> void pthread_cleanup_push( void (*rtn)(void*), void* arg); void pthread_cleanup_pop(int execute); 以上一组代码是成对出现的,具体执行可写成: while(execute) { //执行线程处理函数 }   参数 rtn:

  • linux创建二个线程输出id和学号,比较二个线程id2021-12-01 12:02:31

    1.创建2个线程,线程1输出线程id和自己姓名,线程2输出线程id和自己学号,比较两个线程id是否相等,输出比较的结果。 #include <stdio.h> #include <stdlib.h> #include <pthread.h> #include <unistd.h> //定义线程1运行函数 void* th_fn1(void *arg) //传入void*数值 { printf(

  • Linux线程同步:高速缓存2021-11-28 16:58:19

    一、线程同步的概念 线程同步?怎么同步?一起运行?一起停止?我当年听说线程同步这个词的时候,也是一头雾水。 在人们的日常生活中的锁大概有两种:一种是不允许访问;另一种是资源忙,同一时间只允许一个使用者占用,其它使用者必须要等待。 1)不允许访问的锁容易理解,就像每家每户的门锁,不允许

  • 线程安全,读写锁2021-11-27 22:01:58

    多线程不能调用strtok函数,它内部是用一个静态全局变量来记住当前位置,所以在main函数结束之前,线程和主函数用的是一个strtok,因此是错误的,下面是错误的代码。 #include<stdio.h> #include<stdlib.h> #include<>string.h #include<semaphore.h> #include<pthread.h> void* fun

  • C语言 锁的使用总结2021-11-25 17:35:06

    1. C 互斥锁 mutex初始化与去初始化 #include <pthread.h>int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr);int pthread_mutex_destroy(pthread_mutex_t *mutex);pthread_mutex_init 使用指定的attr属性初始化一个互斥锁mutex 。如果 atrr 设为

  • c++锁机制 demo12021-11-22 19:31:53

    int sum=0; void* work1(void* argv) { int i=1; while(i<500) { sum+=i; i++; } } void* work2(void* argv) { int i=500; while(i<=1000) { sum+=i; i++; } } int fun() { int ans = 0; for (int i = 1; i

  • 使用PThread+消息队列创建一个生产者消费者模型2021-11-22 17:02:58

    一、概述   案例:使用pthread+消息队列(单链表环形队列) 实现生产者消费者模型   各个类的职责说明:   1.message_queue.cpp消息队列     ps:这个类最主要的方法有两个(这个类是线程安全的),一个是enqueueMessage(Message)向消息队列中放入数据,另一个是dequeueMessage(&Messag

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有