随笔分类 - 编程
摘要:写在前面 在web服务端开发中,字符的编解码几乎每天都要打交道。编解码一旦处理不当,就会出现令人头疼的乱码问题。 不少从事node服务端开发的同学,由于对字符编码码相关知识了解不足,遇到问题时,经常会一筹莫展,花大量的时间在排查、解决问题。 文本先对字符编解码的基础知识进行简单介绍,然后举例说明如何
阅读全文
摘要:1、管道 pipe(int fds[2]) 主进程建立管道,然后fork,然后父子进程对同一个管道进行读或写操作 2、通过管道实现执行某个shell命令,并且把执行进程的标准输出或输入返回 FILE * fp=popen('cmdString','type') pclose(fp) 3、命名管道FI
阅读全文
摘要:sysctl -a 显示所有内核参数 sysctl -w xxxxx=1 修改内核参数
阅读全文
摘要:一、非阻塞IO的轮询读写---如果当前进程有多个输入终端和多个输出终端呢?while((n=read(STDIN_FILENO,buf,buf_size))>0){ if(write(STDOUT_FILENO,buf,n)!=n) err_sys("write_error") }1、以上结构可以看出,当前进程具有一个输入终端(文件)和一个输出终端(文件)会很有可能会发生阻塞。降低...
阅读全文
摘要:1、进程终止,那么这个进程建立的锁将全部释放 2、无论何时关闭一个与当前进程相关的文件描述符,那么与这个文件相关的当前进程的锁会全部被释放 3、子进程不会继承父进程的锁,子进程需要调用fcntl对继承来的文件描述符才可以获得锁
阅读全文
摘要:设置文件描述符的属性,高级IO函数会根据属性,选择自己的行为比如直接返回还是阻塞 进程自己多次加锁会用后面锁替换前面锁,一般用于多个进程之间的互斥或读共享,也就是说调用进程不会阻塞在自己持有的锁上。 测试加锁,可以探测出哪个进程在某个文件的某个区域有锁,会用现有锁信息,更新锁结构 1、io函数会检测
阅读全文
摘要:1、线程锁的问题 需要调用进程线程锁处理函数 prefork 获取父亲进程锁 在fork掉用之前,目的是为了在子进程中获取到可释放的锁 parentfork 释放父亲进程锁 childfork 释放子进程锁 在子进程空间内释放锁
阅读全文
摘要:信号属于进程资源,多个线程共享信号。 线程内可以调用pthread_sigmask 线程内可以调用signwait(signset,opno)来专门处理信号 当前进程阻塞的信号集 专门的线程来处理信号 signwait检查signset,如果有未挂起或阻塞的信号,那么就返回并令这些信号阻塞。为什么要
阅读全文
摘要:pthread_setcancel_state 设置线程取消状态为enable或disable 当线程调用 pthread_cancel后,会根据状态来决定执行动作。 默认为enable,不会立即取消,会到某个取消点后执行取消 默认为disable,会挂起取消请求,直到变为enable后,才会在下个
阅读全文
摘要:1、创建KEY,同时绑定一个析构函数,析构函数 2、pthread_once 保证多线程对一个初始化函数只调用一次 3、pthread_setspecific(key,value)
阅读全文
摘要:如果一个函数允许多个线程可重入,说明这个函数是线程安全的 如果一个信号处理函数允许可重入,那么说明异步信号安全的
阅读全文
摘要:SysConf函数检查系统的能力 1、线程属性对象 线程创建时,可以初始化一个线程属性对象,对应的有线程属性对象的回收函数 线程属性对象的线程分离属性,如果不需要获取线程终止状态 设置线程栈的位置和大小 线程栈的警戒区 2、同步对象的属性对象 互斥量同步对象的属性对象: 1)互斥量进程共享属性 互斥
阅读全文
摘要:多个线程再某个屏障阻塞,当线程阻塞数量到达屏障计数时,所有再屏障阻塞的线程继续执行 pthread_barrier_init pthread_barrier_destroy pthread_barrier_wait
阅读全文
摘要:是非sleep阻塞,CPU不能干别的,不能被中断,一般用于中断处理程序
阅读全文
摘要:条件变量提供了一个多个线程会合的一个场所 需要配合互斥量一起使用 pthread_cond_init pthread_conf_destroy 线程例程 proc_do{ for;;{ accquire_lock while dataToHandle!=null pthread_cond_wait(
阅读全文
摘要:1、读写锁,又称为共享互斥锁,实用于读多于写的情况 pthread_rwlock_init pthread_rwlock_rlock pthread_rwlock_wlock pthread_rwlock_destroy pthread_rwlock_timedrlock 避免长时间阻塞超时锁 pt
阅读全文
摘要:1、mutux pthread_mutex_init pthread_mutex_destroy pthread_mutex_lock pthread_mutex_unlock pthread_mutex_trylock pthread_mutext_timedlock 阻塞后,等待锁指定时间,避免
阅读全文
摘要:1、pthread_create 2、pthread_join 阻塞等待指定的线程返回,并取得返回的状态 3、不终止进程的情况下,线程的退出 1)正常启动例程退出,返回值退出码 2)线程被统一进程的其它线程取消 3)线程调用pthread_exit 4、线程清理处理程序 1)pthread_clea
阅读全文
摘要:修改进程的信号屏蔽字,可以阻塞(保护代码临界区)或解除阻塞信号。 假如有解除阻塞后,进入等待,等待信号来临,解除等待,怎么办呢? sigsuspend返回时,恢复进程调用这个函数之前的信号屏蔽字
阅读全文

浙公网安备 33010602011771号