C Linux 多线程入门

×××

入门示例

    启动和停止直接使用接口即可,暂停和恢复需要自己定义,大体的代码如下:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>
#include <signal.h>
#include <sys/time.h>struct sigaction newact, oldact;
unsigned int unslept;// 自定义信号处理
void tm_sig_alrm(int signo) {/* nothing to do */sigset_t siguser1_mask, siguser2_mask,oldmask;sigemptyset(&siguser1_mask);sigemptyset(&siguser2_mask);sigaddset(&siguser1_mask, SIGUSR1);sigaddset(&siguser2_mask, SIGUSR2);switch (signo){case SIGUSR1:pause();break;case SIGUSR2:break;default:return;}
}// 暂停线程
int tm_thread_suspend(pthread_t tid) {return pthread_kill(tid, SIGUSR1);
}// 恢复线程
int tm_thread_resume(pthread_t tid) {return pthread_kill(tid, SIGUSR2);
}// 循环输出
void task() {int count = 0;while(1) {printf("count: %d\n", count);sleep(1);}
}int main(int argc, char const *argv[])
{newact.sa_handler = tm_sig_alrm; //注册了 SIGALRM 信号的处理函数 sig_alrmsigemptyset(&newact.sa_mask);newact.sa_flags = 0;sigaction(SIGUSR1, &newact, &oldact);sigaction(SIGUSR2, &newact, &oldact);pthread_t threadId;// 启动线程pthread_create(&threadId, NULL, task, NULL);sleep(10);// 暂停线程tm_thread_suspend(threadId);sleep(10);// 恢复线程tm_thread_resume(threadId);sleep(10);// 停止线程pthread_cancel(threadId);return 0;
}

C Linux 多线程入门相关推荐

  1. Linux新手入门之基础命令操作

    Linux新手入门 1.Linux基本介绍 1.1.简介 Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的. Linux 是一套免 ...

  2. linux从入门开始——Linux必备手册(Linux关键词,Linux命令总结)

    linux系统一切皆文件 linux从入门开始 Linux 目录结构 常用基本命令 关机重启命令 帮助命令 文件目录类 时间日期类 用户管理命令 用户组管理命令 文件权限类 搜索查找类 压缩和解压类 ...

  3. Linux操作系统入门

    Linux操作系统入门 一.入门概述 我们为什么要学习Linux linux诞生了这么多年,以前还喊着如何能取代windows系统,现在这个口号已经小多了,任何事物发展都有其局限性都有其天花板.就如同 ...

  4. Linux多线程的同步------读写锁

    前面介绍过Linux多线程同步的另外两个方法------互斥锁和信号量 Linux多线程的同步-----信号量和互斥锁_神厨小福贵!的博客-CSDN博客 下面来看一下读写锁: 读写锁和互斥锁都带有一个 ...

  5. Linux多线程的同步-----信号量和互斥锁

    前面两篇给基本概念讲过了,大家有兴趣的可以去看一下: Linux多线程_神厨小福贵!的博客-CSDN博客进程和线程的区别有哪些呢?进程是资源分配的最小单位,线程是CPU调度的最小单位进程有自己的独立地 ...

  6. LINUX新手入门-1.装系统

    LINUX新手入门-1.装系统 首先我们用虚拟机模拟 装linux系统,然后下一步下一步,然后完成后,编辑一些设置,把镜像放上面就可以了 选第一项,安装系统,查看镜像是否能运行,直接跳过,选择语言 和 ...

  7. 计算机书籍-Linux内核 入门篇

    去天猫看看智能鼠标 书名:奔跑吧 Linux内核 入门篇 作者:张天飞 出版社:人民邮电出版社 出版时间:2019年02月

  8. 《嵌入式 Linux应用程序开发标准教程(第2版)》——第1章 Linux快速入门 1.1 嵌入式Linux基础...

    本节书摘来自异步社区<嵌入式 Linux应用程序开发标准教程(第2版)>一书中的第1章,第1.1节,作者 华清远见嵌入式培训中心,更多章节内容可以访问云栖社区"异步社区" ...

  9. Linux 多线程应用中编写安全的信号处理函数

    2019独角兽企业重金招聘Python工程师标准>>> Linux 多线程应用中编写安全的信号处理函数 在 开发多线程应用时,开发人员一般都会考虑线程安全,会使用 pthread_m ...

最新文章

  1. bash 运行程序 下一步_怎样用 Bash 编程:语法和工具
  2. Python中的retry
  3. SAP面向iOS设备推Cloud Platform SDK工具
  4. 【Gym - 101775J】Straight Master(差分,思维)
  5. 梁单元分析matlab,[FEM][有限元][编程][Matlab][Code by myself] 2D Timoshenko梁单元
  6. Python常用正则表达式语法和写法
  7. 面试、笔试中常用的SQL语句(数据库知识必杀)一共50个!!!
  8. java 分享商品生成海报到微信+二维码
  9. 利用pdfminer3k 使用python语言提取PDF中的文本
  10. iOS:iOS 的 APP 如何适应 iPhone 5s/6/6Plus 三种屏幕的尺寸?
  11. 2022年公示的第一家企业征信备案机构
  12. Java高并发处理:请求合并
  13. ale.js 对比其他框架
  14. 解决页面刷新数据丢失,数据持久化问题
  15. 基于C语言设计的小型图形软件系统
  16. 微信小程序--获取二维码(java后端)
  17. 《开源之迷》有哪些迷?怎么解?
  18. Python的布尔类型和True/False的各种形式
  19. linux命令之打包和解压
  20. 【DDR3 控制器设计】(1)MIG IP 核的详解与配置

热门文章

  1. 几种无线充电解决方案特点及原理图
  2. 双系统(win8.1+ubuntu14.04)删除win下分区导致grub rescue解决方案
  3. vue-webpack项目本地开发环境设置代理解决跨域问题
  4. 【白皮书分享】2021-2022内容营销平台价值洞察白皮书.pdf(附下载链接)
  5. 网站前后端交互学习有感
  6. BERT4Rec:当NLP王者BERT进军推荐领域
  7. 跨境电商是什么?跨境电商有哪些模式?
  8. Computer science 概念汇总
  9. 微机笔记5——定时与计数
  10. Redis基础(十三)——Jedis和Linux