狂自私

导航

2018年4月7日 #

Linux:客户端的实现

摘要: 写了一个简单的服务器软件,但是没有写客户端。现在我将客户端实现了,其实昨天已经说了客户端的实现步骤了。 步骤: socket() 初始化 connet()链接 从标准输入读数据fgets() 传数据到服务器write() 读从服务器返回的数据read() 写数据到屏幕上write() 关闭socket文件close() 都没有什么新知识的。所以我也就直接贴代码了; #include ... 阅读全文

posted @ 2018-04-07 11:03 狂自私 阅读(286) 评论(0) 推荐(0) 编辑

2018年4月6日 #

Linux:写一个简单的服务器

摘要: 开始了新篇章:Linux网络编程。 基础知识: 套接字概念 Socket本身有"插座"的意思,在Linux环境下,用于表示进程间网络通信的特殊文件类型。本质为内核借助缓冲区形成的伪文件。 既然是文件,那么理所当然的,我们可以使用文件描述符引用套接字。与管道类似的,Linux系统将其封装成文件的目的是 阅读全文

posted @ 2018-04-06 23:19 狂自私 阅读(2571) 评论(0) 推荐(0) 编辑

Linux:条件变量

摘要: 条件变量: 条件变量本身不是锁!但它也可以造成线程阻塞。通常与互斥锁配合使用。给多线程提供一个会合的场所。 主要应用函数: pthread_cond_init函数 pthread_cond_destroy函数 pthread_cond_wait函数 pthread_cond_timedwait函数 pthread_cond_signal函数 ... 阅读全文

posted @ 2018-04-06 10:34 狂自私 阅读(483) 评论(0) 推荐(0) 编辑

2018年4月5日 #

Linux:结束线程的三种方式

摘要: 一般情况下,线程终止后,其终止状态一直保留到其它线程调用pthread_join获取它的状态为止。但是线程也可以被置为detach状态,这样的线程一旦终止就立刻回收它占用的所有资源,而不保留终止状态。不能对一个已经处于detach状态的线程调用pthread_join,这样的调用将返回EINVAL错误。也就是说,如果已经对一个线程调用了pthread_detach就不能再调用pthread_joi... 阅读全文

posted @ 2018-04-05 20:49 狂自私 阅读(27155) 评论(0) 推荐(2) 编辑

Linux:回收循环创建的多个线程

摘要: 上午我说了循环创建多个线程,由于进程与线程是如此的相似,进程我们知道要回收,那么线程也自然要回收啦。我们接着看控制原语: 线程与共享 线程间共享全局变量! 【牢记】:线程默认共享数据段、代码段等地址空间,常用的是全局变量。而进程不共享全局变量,只能借助mmap。 pthread_exit函数 将单个线程退出 void pthread_exit(void *retval);参... 阅读全文

posted @ 2018-04-05 20:49 狂自私 阅读(1940) 评论(0) 推荐(0) 编辑

Linux 循环创建多个线程

摘要: 这里说一下相关的基础知识: 线程概念 什么是线程 LWP:light weight process 轻量级的进程,本质仍是进程(在Linux环境下) 进程:独立地址空间,拥有PCB 线程:也有PCB,但没有独立的地址空间(共享) 区别:在于是否共享地址空间。独居(进程);合租(线程)。 Linux下:线程:最小的执行单位 ... 阅读全文

posted @ 2018-04-05 20:49 狂自私 阅读(7384) 评论(1) 推荐(0) 编辑

setitimer函数

摘要: 和alarm函数类似,都用于定时操作; 函数原型:int setitimer(int which, const struct itimerval *new_value, struct itimerval *old_value); 参数:which是指定的定时方式 ①自然定时:ITIMER_REAL → 14)SIGLARM ... 阅读全文

posted @ 2018-04-05 20:48 狂自私 阅读(1132) 评论(0) 推荐(1) 编辑

Linux:使用互斥量进行线程同步

摘要: 基础知识 同步概念 所谓同步,即同时起步,协调一致。不同的对象,对"同步"的理解方式略有不同。如,设备同步,是指在两个设备之间规定一个共同的时间参考;数据库同步,是指让两个或多个数据库内容保持一致,或者按需要部分保持一致;文件同步,是指让两个或多个文件夹里的文件保持一致。等等 而,编程中、通信中所说的同步与生活中大家印象中的同步概念略有差异。"同"字应是指协同、协助、互相配合... 阅读全文

posted @ 2018-04-05 20:48 狂自私 阅读(231) 评论(0) 推荐(0) 编辑

多线程拷贝文件(映射区通讯实现)

摘要: 进程的一般创建我已经学完了,进程之间的通讯四种常用的我也学习了三种,就剩下本地套接字没有学习。现在想用这些知识来完成一个小程序:多线程拷贝文件。 理论上来说,多个线程共同做一件事比单线程做一件同样的事所需时间少。现在来思考一下整体流程是怎样的: 打开(创建)文件(open) 获取文件大小(stat.st_size) 拓展文件(ftruncate()) 建立目标文件映射区(mmap()) 确定创建多... 阅读全文

posted @ 2018-04-05 20:47 狂自私 阅读(507) 评论(0) 推荐(0) 编辑

把所有常规信号的未决状态打印至屏幕

摘要: 信号未决状态,说的实际是未决信号集。即我们要打印输出未决信号集到屏幕上。在此之前,先看看信号集操作函数 int sigemptyset(sigset_t *set); 将某个信号集清0 成功:0;失败:-1 int sigfillset(sigset_t *set); 将某个信号集置1... 阅读全文

posted @ 2018-04-05 20:47 狂自私 阅读(157) 评论(0) 推荐(0) 编辑