- 博客(24)
- 收藏
- 关注
原创 基于hisilicon的arm平台搭建gdb+gdbserver调试环境
1、准备工作建立安装目录,并修改目录权限www.linuxidc.com@ubuntu:~$ sudo mkdir -p /opt/crosstool/arm-gdbwww.linuxidc.com@ubuntu:~$ sudo chown -R /opt/crosstool/arm-gdb下载gdb-6.5.tar.bz2(或者更新版的gdb)www.linuxidc.com
2016-08-30 14:32:30 2749 1
转载 Linux网络编程 - 网络通信基础
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[-]1linux文件操作1 系统调用11 函数open12 函数close13 函数read14 函数write15 函数ioctl16 函数lseek17 函数fstat和stat和lstat17 函数dup和dup22 库函数21 函数fopen22 函数fread23 函数
2016-08-29 18:38:55 606
原创 C语言之堆栈详解
原文:http://blog.csdn.net/fk961859482/article/details/42005935 在计算机领域,堆栈是一个不容忽视的概念,堆栈是两种数据结构。 堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。 要点: 堆,列队优先,先进先出。
2016-08-29 10:59:42 751
原创 C语言之基本数据类型
C语言基本数据类型简介1.概述 C 语言包含的数据类型如下图所示:2.各种数据类型介绍2.1整型 整形包括短整型、整形和长整形。2.1.1短整形 short a=1;2.1.2整形 一般占4个字节(32位),最高位代表符号,0表示正数,1表示负数,取值范围是-2147483648~2147483647,在内存中的存储顺序是地位在前、高位在后,例如
2016-08-29 10:48:45 496
原创 Linux线程池(C语言)及简单实现示例
线程池基本原理 在传统服务器结构中, 常是 有一个总的 监听线程监听有没有新的用户连接服务器, 每当有一个新的 用户进入, 服务器就开启一个新的线程用户处理这 个用户的数据包。这个线程只服务于这个用户 , 当 用户与服务器端关闭连接以后, 服务器端销毁这个线程。然而频繁地开辟与销毁线程极大地占用了系统的资源。而且在大量用户的情况下, 系统为了开辟和销毁线程将浪费大量的时间和资源。线程池提供了
2016-08-29 10:45:25 542
原创 Linux线程编程 - 线程属性控制
获取线程ID实例函数pthread_self()将返回当前线程的ID值。1. 在当前Linux下,线程ID在某进程中是唯一的,在不同的进程中创建的线程可能出现ID值相同的情况。2. 而在内核中,每个线程都有自己的PID(但通过ps命令不能查看,也不会再/proc目录下生成对应PID的编号的目录),用户可以通过syscall函数返回。[cpp] v
2016-08-29 10:12:13 544
原创 Linux线程编程 - 多线程异步管理之信号
线程在信号操作时的特性 (1)每一个线程可以向别的线程发送信号。pthread_kill()函数用来完成这一操作。(2)每一个线程可以设置自己的信号阻塞集合。pthread_sigmask()函数用来完成这一操作,其类似于进程的sigprocmask()函数。(3)每个线可以设置针对某信号处理的方式,但同一进程中对某信号的处理方式只能有一个有效,即最后一次设置的处理方式。(4)
2016-08-29 10:07:08 1028
原创 Linux线程编程 - 线程同步机制之信号量
信号量既可以作为二值计数器(即0,1),也可以作为资源计数器. 信号量本质上是一个非负的整数计数器,它被用来控制对公共资源的访问。当公共资源增加时,调用函数sem_post()增加信号量。只有当信号量值大于0时,才能使用公共资源,使用后,函数sem_wait()减少信号量。函数sem_trywait()和函数pthread_ mutex_trylock()起同样的作用,它是函数sem_wa
2016-08-29 10:02:57 414
原创 Linux线程编程 - 线程同步机制之读写锁通信机制
概述读写锁与互斥量类似,不过读写锁允许更高的并行性。互斥量要么是锁住状态,要么是不加锁状态,而且一次只有一个线程对其加锁。读写锁可以有三种状态:读模式下加锁状态,写模式下加锁状态,不加锁状态。一次只有一个线程可以占有写模式的读写锁,但是多个线程可用同时占有读模式的读写锁。读写锁也叫做共享-独占锁,当读写锁以读模式锁住时,它是以共享模式锁住的,当它以写模式锁住时,它是以独占模式锁住的。
2016-08-29 09:02:56 649
原创 Linux线程编程 - 线程同步机制之条件变量
前一节中我们讲述了如何使用互斥锁来实现线程间数据的共享和通信,互斥锁一个明显的缺点是它只有两种状态:锁定和非锁定。当线程A释放锁后,线程B和线程A多锁的竞争是平等的,所以会造成线程A继续抢占到锁,如果线程A一直抢占到锁,那么线程B就一直不会执行。而条件变量通过允许线程阻塞和等待另一个线程发送信号的方法弥补了互斥锁的不足,它常和互斥锁一起使用。使用时,条件变量被用来阻塞一个线程,当条件不满足时,线程
2016-08-26 17:35:55 648
原创 Linux线程编程 - 线程同步机制之互斥锁
互斥锁基本原理互斥以排他方式防止共享数据被并发修改。互斥锁是一个二元变量,其状态为开锁(允许0)和上锁(禁止1),将某个共享资源与某个特定互斥锁绑定后,对该共享资源的访问如下操作:(1)在访问该资源前,首先申请该互斥锁,如果该互斥处于开锁状态,则申请到该锁对象,并立即占有该锁(使该锁处于锁定状态),以防止其它线程访问该资源;如果该互斥锁处于锁定状态,默认阻塞等待;(2)只有锁定该互
2016-08-26 16:43:57 587
原创 Linux线程编程 - 线程退出与等待
线程退出新创建的线程从执行用户定义的函数处开始执行,直到出现以下情况时退出:调用pthread_exit函数退出。调用pthread_cancel函数取消该线程。创建线程的进程退出或者整个函数结束。其中的一个线程执行了exec类函数执行新的进程。等待线程退出线程示例[cpp] view plai
2016-08-26 14:42:28 6599
原创 Linux线程编程 - 线程概念及创建线程
线程与进程的对比线程自己基本上不拥有系统资源,只拥有少量在运行中必不可少的资源(如程序计数器、一组寄存器、栈、线程信号掩码、局部线程变量和线程私有数据),但是它可与同属一个进程的其他线程共享进程所拥有的全部资源(同一地址空间、通用的信号处理机制、数据与I/O)。进程在使用时占用了大量的内存空间,特别是进行进程间通信时一定要借助操作系统提供的通信机制,这使得进程有自身
2016-08-26 13:56:24 639
原创 Windows编程中各种操作文件的方法
windows编程中文件操作有以下几种常见方法:1.C语言中文件操作。2.C++语言中的文件操作。3.Win32 API函数文件操作。4.MFC CFile类文件操作。5.MFC CFileDialog类的文件操作。6.注册表文件操作。下面我来详细说明一下各种文件操作方法:1. C语言中文件操作.需要包含的头文件stdio.h写入文件:F
2016-08-26 10:19:06 3455
原创 秒杀多线程第十篇 读者写者问题
下面利用信号量和互斥量来做一个读写锁类,代码如下:////////////////////////////////////////////////////////////////////////////读写锁功能:该类为多线程做对资源的读写锁,其中信号量用来读写互斥和写写互斥,互斥量用来读读互斥思路概要:看代码中的注释可知////////////////////////////
2016-08-24 10:05:28 336
转载 秒杀多线程第九篇 经典线程同步总结 关键段 事件 互斥量 信号量
转载出处:秒杀多线程第九篇 经典线程同步总结 关键段 事件 互斥量 信号量总结篇的话,就没有什么多说的了,每个人对知识的理解点不同,做出的总结也会不同,该篇文章作者做的总结很不错,至于我自己的总结的话,后续在实际项目中用到或者对这些知识更熟练,有更好的掌握在来做总结。
2016-08-24 09:38:33 340
转载 秒杀多线程第八篇 经典线程同步 信号量Semaphore
转载出处:秒杀多线程第八篇 经典线程同步 信号量Semaphore文章中介绍了对信号量的使用,在这里就不再做说明,以后如果在项目中用到将继续更新。。。转载出处:秒杀多线程第九篇 经典线程同步总结 关键段 事件 互斥量 信号量首先来看下关于线程同步互斥的概念性的知识,相信大家通过前面的文章,已经对线程同步互斥有一定的认识了,也能模糊的说出线程同步互斥的各种概念性知识,
2016-08-23 15:35:25 468
转载 秒杀多线程第七篇 经典线程同步 互斥量Mutex
转载出处:秒杀多线程第七篇 经典线程同步 互斥量Mutex学习笔记:该篇文章已经足够详细的介绍了互斥量的使用,如果在以后的项目中用到的话将更新遇到的问题。
2016-08-23 15:30:19 225
转载 秒杀多线程第六篇 经典线程同步 事件Event
转载出处:秒杀多线程第六篇 经典线程同步 事件Event学习笔记:这篇文章已经介绍的十分详细,此处记录一下看这篇文章时产生的疑问和对该疑问的解答。关键段来处理各子线程间的互斥。详见代码:[cpp] view plain copy#include #include #include long g_nN
2016-08-23 13:47:45 440
转载 秒杀多线程第三篇 原子操作 Interlocked系列函数
转载:秒杀多线程第三篇 原子操作 Interlocked系列函数学习笔记原子操作只能做到各子线程间互斥,不能做到主线程和子线程的同步由于线程执行的并发性,很可能线程A执行到第二句时,线程B开始执行,线程B将原来的值又写入寄存器eax中,这样线程A所主要计算的值就被线程B修改了。这样执行下来,结果是不可预知的——可能会出现50,可能小于50。 因此在多线程
2016-08-16 10:31:32 321
转载 秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别
转载:多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别
2016-08-12 09:40:28 272
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人