- 博客(5)
- 资源 (4)
- 收藏
- 关注
原创 TCP/UDP的socket编程
认识TCP/IP协议首先,TCP/IP协议叫做传输控制协议(TCP)和网际协议(IP); 但是TCP/IP协议其实是一组协议,包括:ICMP, RIP, TELENET, FTP, SMTP, ARP, TFTP等。TCP——–传输控制协议TCP简介:传输层协议有连接可靠传输面向字节流全双工 当客户端和服务端要交互数据前,彼此间必须建立一个TCP连接,然后才能传输...
2018-04-23 23:50:40 194
原创 线程同步---信号量
POSIX信号量POSIX信号量和SystemV信号量作用相同,都是用于同步操作。 信号量和互斥锁的区别:互斥锁只允许一个线程进入临界区;信号量同一时刻允许多个线程进入临界区。 (1)初始化信号量#include<semaphore.h> int sem_init(sem_t *sem,int pshared,unsigned int value); 参数: sem: 信...
2018-04-15 09:40:35 218
原创 线程同步---条件变量
条件变量(cond):为什么需要条件变量?当一个线程互斥的访问某个变量时,它可能发现在其他线程改变该变量状态之前,它什么也做不了!(此时就是死锁,一种僵死状态)我们需要一种机制,当互斥量锁住以后,当前线程还是无法完成自己的操作,那么就应该释放互斥量,让其他线程继续工作。 1. 可以用轮询机制,不停的查询你需要的条件; 2. 用条件变量机制;条件变量函数: (1)初始化...
2018-04-15 00:07:03 236 1
原创 浅识:【C++11】右值引用
引入右值引用的目的:为了支持移动操作和完美转发。目的:解决临时对象的问题,提高效率。区分左值和右值:左值跟右值都是针对表达式而言的; 左值:指表达式结束后依然存在的持久对象,变量是左值。 右值:指表达式结束时就不再存在的临时对象,右值是可以取出地址的,要么是字面常量,要么是表达式求值过程中创建的临时对象。 左值持久,右值短暂例子:对于int a = 10;++a和a++的...
2018-04-14 21:16:19 824
原创 线程同步---互斥锁
一:为什么要用多线程?避免阻塞:一个进程如果只有一个线程的话,当这个一个线程阻塞则就整个进程阻塞,无法再去完成其他事情。提高效率,避免CPU空转:程序经常涉及读写操作就会访问磁盘,这些操作的速度比CPU慢的多,而为了等待这些操作的响应,CPU又不能去干其他的事情或者处理新的请求,导致这种单线程的程序性能差。而多线程会共享同一地址空间,线程的切换比进程快。二:Linux提供线程同步...
2018-04-14 00:03:21 271
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人