nvim使用技巧
本文总结记录一些neovim的使用技巧。包括根据上下文判断是否扩展tab(expandtab)、在已修改的文件位置之间跳转、将选中的字符作为文件名在新标签页打开。
专注于工业物联网行业数据采集,嵌入式Linux系统裁剪,5G智慧网关软件开发等
本文总结记录一些neovim的使用技巧。包括根据上下文判断是否扩展tab(expandtab)、在已修改的文件位置之间跳转、将选中的字符作为文件名在新标签页打开。
守护进程是生存期长的一种进程,在系统引导装入时启动,在系统关闭时终止。
守护进程没有控制终端,通常在后台运行,实际上是在后台的孤儿进程组中运行。
没有控制终端的原因在于不与用户交互,避免终端信号影响。
在孤儿进程组中运行的原因在于防止其获取控制终端(通过每次打开终端设备设置参数O_NOCTTY的方式不太靠谱)。
多线程环境下,调用fork函数创建子进程时,子进程完全继承了父进程的整个内存地址空间。
父进程中的互斥锁、多个线程在子进程中是如何处理的呢?
由于父子进程之间采用了写时复制技术,在子进程未改变互斥锁之前,父子进程对锁的状态是相同的,此时如何处理同步状态?
多线程环境下需要使用互斥量等数据来进行线程间数据同步,然而同时使用同步对象与信号处理很容易造成死锁,本文探索如何在多线程环境下来进行信号处理。
在多线程环境中,为了防止信号中断线程,通常把信号加到每个线程的信号屏蔽字中。然后安排专用线程来处理信号。
codebrowser能够对源码生成静态HTML网页,搭配nginx可以在WEB上浏览源码。
支持功能如下:
本文通过使用NFS Server工具在WIN11上搭建NFS Server,打通Linux开发环境到嵌入式板子之间的通路,优化Linux服务器与嵌入式板子之间的多次SCP拷贝操作。
Windows下的NFS Server工具来自于Networking Software for Windows (hanewin.net)
线程特定数据(thread-specific data),也称为线程私有数据(thread-private data),是线程单独的数据副本,存储在线程的私有存储空间,不与进程中其他线程共享。
线程键(pthread_key_t),每个线程用其与自身特定数据地址进行关联。
析构函数用于线程退出时调用。通常使用malloc为线程特定数据分配内存,析构函数通常用于释放已分配的内存。
可重入等价于异步信号安全。
线程安全与可重入以及异步信号安全没有必然联系。
屏障的作用是允许每个线程完成自身任务之后等待,直到所有线程都达到某一点,然后从该点继续执行。
默认情况下屏障应用于单个进程的多个线程之间。
屏障的进程共享属性允许将屏障应用于多个进程之间,前提是多个进程能够访问到同一个屏障对象。
线程条件变量可以是线程以非竞争的方式同步执行。
线程条件变量支持两个属性:进程共享与时钟属性。
进程共享属性可以使条件变量被多进程的线程使用。
时钟属性控制计算pthread_cond_timedwait()函数的超时参数(tsptr)时采用哪个时钟。
本文介绍了线程的同步对象读写锁的属性,通过读写锁属性可以控制在线程之间使用读写锁同步时的行为。
线程的读写锁仅支持进程共享属性。