Linux--线程死锁

一、死锁1.什么是死锁?死锁是指两个或两个以上的进程(线程)在执行过程中,由于竞争资源或者彼此通信而造成的一种阻塞现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或者系统产生了死锁,这些永远在等待的进程(线程)称为死锁进程(线程)。举一个简单的例子:有A和B两个进程,都需要1和2两...

2018-04-30 17:25:36

阅读数:17

评论数:0

简单的gdb调试多线程

利用gdb调试多线程有以下命令:1.info threads:显示可以调试的所有线程。gdb会为每个线程分配一个ID(和tid不同),编号一般从1开始。后面的ID是指这个ID。2.thread ID:切换当前调试的线程为指定ID的线程。3.break FileName.cpp:LinuNum th...

2018-04-30 15:22:37

阅读数:12

评论数:0

Linux--多线程一(基本概念、线程控制、线程创建、线程终止、线程等待与分离、线程的互斥与同步)

线程相关的知识点比较多,这里有两个模型(生产者消费者模型,以及读者写者模型)我会在后面的博客中写入!一、线程的概念1.什么是线程在一个程序里的一个执行路线叫做线程(准确来说,线程是一个进程内部的控制序列),一切进程都至少有一个执行线程。2.进程和线程(1)区别与联系1>进程是...

2018-04-30 13:22:41

阅读数:51

评论数:0

斐波那契数列的四种实现方式(C语言)

斐波那契数列是一组第一位和第二位为1,从第三位开始,后一位是前两位和的一组递增数列,像这样的:1、1、2、3、5、8、13、21、34、55......今天,我们用四种方式来进行实现:1.递归int Fibon1(int n) { if (n == 1 || n == 2) { retur...

2018-04-21 09:33:31

阅读数:12

评论数:0

将多个字符串排序

#include<stdio.h> #include<string.h> int main() { char *str[] = { "hello", "...

2018-04-21 08:35:01

阅读数:114

评论数:0

网络基础(1)

一、计算机网络背景计算机网络的相关知识背景,在网上我们是可以找到很多相关资料的,在这里我们只谈几个比较重要的概念,以便后续知识的学习,读者也可以查找更多的相关资料,更加全面的了解计算机网络。1.网络发展(1)独立模式:计算机之间相互独立;(2)网络互联:多台计算机连接在一起,完成数据共享。举例如下...

2018-04-20 23:04:03

阅读数:41

评论数:0

对任意一个整型数组进行冒泡排序

冒泡排序的核心就是进行两次循环的嵌套,然后两个数进行比较,若前面的数大于后面的数,两个数就交换位置;若前面的数小于或者等于后面的数,则不需要进行比较。(就和平时我们看到的泡泡一样,轻的泡泡总是在最上面)代码如下:方法一:#include<stdio.h>...

2018-04-19 21:43:23

阅读数:50

评论数:0

一个数组中只有两个数字是出现一次的,其他的数字都出现了两次,找出这两个数字,编写程序。

本题的最关键之处就是巧用两个数异或得到的二进制中“1”单位位数代码如下:方法一:#include<stdio.h> int main() { int arr[] = { 1, 2, 3, 4, 1, 2, 3, 4, 5, 6 }; int i = ...

2018-04-19 17:31:03

阅读数:12

评论数:0

Linux--守护进程

一、认识守护进程1、守护进程的引入 在现实生活中, 许多大型的软件或服务器必须保证7*24小时(一周7天,一天24小时)无障碍的运行,例如淘宝网、百度搜索引擎、支付宝等等,那么像这样一种要一直运行的程序怎么实现呢?究其本质其实就是我们的守护进程。2.守护进程的定义守护进程也称为精灵进程(Daemo...

2018-04-19 11:43:32

阅读数:15

评论数:0

Linux--进程间关系/终端/作业控制

一、进程间关系(3种)1.进程组每个进程除了有一个进程ID之外,还属于一个进程组。进程组是一个或多个进程的集合。通常,它们与同一作业相关联,可以接收来自同一终端的各种信号。每个进程组都有一个唯一的进程组ID。每个进程组都可以有一个组长进程。组长进程标识的是,其进程组ID等于其进程ID(一般,默认每...

2018-04-17 20:58:37

阅读数:38

评论数:0

用C语言编写程序:1-1/2+1/3-1/4+1/5......+1/99-1/100

#include<stdio.h> int main() { int fm = 0; float sum = 0.0; for (fm = 1; fm <= 100; fm++) { if (fm % 2 != 0) ...

2018-04-15 21:19:46

阅读数:20

评论数:0

进程信号

在学习进程信号的相关知识之前,我们先来看一看操作系统定义的信号列表中有多少种信号使用kill -l命令来查看,如下图:注意:1.一眼看过去,好像有64种信号,但其实只有62种信号!!!(其中1~31是普通信号,也是我们在这里要重点学习的信号;34~64是实时信号);2.每一种信号都有其对应的编号和...

2018-04-12 22:10:32

阅读数:18

评论数:0

猴子吃桃问题

问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半多一个。到第十天早上想再吃的时候,发现只剩下了一个桃子了。求第一天共摘了多少?思路:方法一:#include<stdio.h...

2018-04-09 22:52:53

阅读数:19

评论数:0

一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第n次落地时,共经过多少米?第n次反弹多高?(以第十次为例)

在做题之前,我们先来捋一捋本题的思路,如下图在编写代码时,我们可能不能一次性的确定需要定义多少个变量,这个就需要一步一步的看情况代码如下:#include<stdio.h> int main() { float h = 100;//高度 int n ...

2018-04-05 23:04:04

阅读数:40

评论数:0

计算a+aa+aaa+...并且进行越界检测

编写程序:a+aa+aaa+...+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时,a=2,共有5个数相加)a,n由键盘输入控制#include<stdio.h> #define INT_MAX 0x7fffffff...

2018-04-02 22:43:36

阅读数:20

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭