- 博客(177)
- 收藏
- 关注
原创 守护进程的实现
通过使进程不再是会话组长来实现,再一次通过fork创建新的子进程,使调用fork的进程退出。另外再补充一点,既然bash退出的时候会向所有会话组的进程发送SIGHUP信号,那只需要捕捉这个信号,让其不执行原来的动作,就不会退出了。调用fork或vfork生成一个进程,然后父进程退出。setsid()调用成功后,返回新的会话ID,调用setsid函数的进程成为新的会话的领头进程,并与其父进程的会话组和进程组脱离。可以看到守护进程和它的bash不在同一个进程组中,因此bash退出并不会影响守护进程。
2022-08-20 19:14:35 697 1
原创 Go语言的流程控制
go语言中的switch也比C/C++中强大很多,go语言中的switch和case后面可以跟很多类型,比如常量、变量或函数表达式,甚至是结构体,只要它们表示的数据相同就行。go语言中的if语句和C/C++中相同,但是go语言中的if语句可以在if中定义变量或者常量,并且整个if语句(包括else if,else)块中都可以使用它们。比如这里,我们开了2M的空间,ret和arr都指向了这段空间,虽然ret只用了很小的一段空间,但由于仍然有slice指向了2M空间,内存就不会释放。...
2022-08-17 20:07:27 374
原创 Reactor
事实上,Reactor 模式也叫 Dispatcher 模式,即 I/O 多路复⽤监听事件,收到事件后,根据事件类型分配(Dispatch)给某个进程 / 线程。实现简易计算器的业务:客户端发来一段字符串,格式为"a+bXc-dX",X主要用来分隔表达式,防止出现“粘包”问题,计算完成之后,将结果发回去,也用X进行分隔。Reactor 翻译过来的意思是「反应堆」,这⾥的反应指的是「对事件反应」,也就是来了⼀个事件,Reactor 就有相对应的反应/响应。Reactor 的数量可以只有⼀个,也可以有多个。..
2022-08-09 00:44:17 390
原创 读者写者模型---读优先与写优先
Linux线程中写过生产者消费者模型,这次研究读者写者模型。文章目录读者写者模型遵循的规则读优先写者优先读者写者模型遵循的规则读者-写者模型同样遵循321规则:写-写互斥,即不能有两个写者同时进行写操作。读-写互斥,即不能同时有一个线程在读,而另一个线程在写。读-读允许,读者和读者之间没有关系,即可以有一个或多个读者同时读。读优先如果一个读者申请进行读操作时已有另一个读者正在进行读操作,则该读者可直接开始读操作。而此时写者正在被阻塞,只有所有的读者都读完,写者才会被唤醒。//读者优
2022-05-24 22:59:21 1619 2
原创 09 MySQL用户管理
文章目录用户管理查看用户信息创建用户删除用户修改用户密码数据库的权限给用户赋权回收权限用户管理如果我们只能使用root用户,这样存在安全隐患,因为root可以访问所有的数据库和表。这时,就需要使用MySQL的用户管理。从而限制某个特定的用户只能访问特定的数据库和表,并且对其权限作出一定的限制,比如只有可读权限。查看用户信息MySQL中的用户信息,都存储在系统数据库mysql的user表中:select host,user,authentication_string from user;h
2022-05-02 12:45:22 2046 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人