IOTXING

记录技术学习之路

0%

背景

在进行多线程编程的时候,经常会遇到线程安全的问题,例如一个线程在修改一个变量的时候,另外一个线程也在修改这个变量,而根据java的内存模型,每个工作线程都会先把变量从主内存中拉回到自己的内存,在修改了之后再刷新回主内存,所以就会出现数据不一致的问题,例如下面的对count进行累加

Read more »

背景

在现有的技术发展下,多线程变得越来越普遍,在处理一些耗时的任务,或者需要异步处理一些业务的时候,需要我们使用多线程来进行处理。例如在处理用户注册的时候,需要发送验证码,这个时候我们不能等到在主线程进行这个操作,因为发送验证码可能是一个比较耗时的任务,如果在主线程执行的话会进行阻塞,进而会影响到别的请求的工作。这个时候就需要我们先回复当前请求,然后新起一个线程去进行验证码的发送。

线程的生命周期

Read more »

python 线程 进程 协程

刚好今天早上早饭买的是煎饼果子,我就用煎饼果子这个东西来比较一些线程进程跟协程之间的关系

线程

Read more »

python 协程

协程

一般的子程序都是层级调用,比如A调用B,B调用C,C执行完毕返回,B执行完毕返回,最后A执行完毕返回。一个子程序的调用永远都是只有一个入口跟一个出口。调用顺序是明确的

Read more »

Python 进程

因为GIL的限制,一个进程中只能有一个线程获取到资源,因此在有些场景下会显得很鸡肋。一种解决方法就是利用多进程,通过开多个进程就可以绕开GIL的限制。

多进程

Read more »

Python 线程池

队列

Python 中有三种队列,Queue,LifoQueue,PriorityQueue

  • Queue为普通的先进先出
  • LifoQueue (Last in First out)为先进后出队列
  • PriorityQueue 根据优先级,数字越小优先级越高,优先级相同先进先出
Read more »