Fuhui

Golang文件锁


多个goroutine同时操作一同一个文件时,很容易出现数据混乱,因此有必要对文件进行加锁 多进程写

协程:用户控制切换 goroutine:用户控制切换->语言控制 进程/线程:内核OS控制切换 flock是操作系统级别的锁 使用fopen以"a"追加模式打开时,多个进程写同一log文件不会发送覆盖写的问题,每次都保证在文件末尾写。但是不保证写入的顺序

并发与多核利用并不是相同的概念,高并发不一定利用了多核,

python协程就是一个典型,协程使用一种轻线程机制,避开了传统多线程的切换开销,实现惊人的并发管理。 但协程本身是运行在单线程里的,协程并不能直接利用多核,仍然受GIL影响。 因为python GIL的存在,python多线程是无法利用多核的。 多进程模式,python提供了multiprocessing模块, 可以用共享内存模式,这个模块为利用多核的应用提供了便利。