ios线程锁有哪几种 在使用多线程和连接池的情况下如何保证SQL执行顺序?

在使用多线程和连接池的情况下如何保证SQL执行顺序?谢谢你的邀请!使用同步锁存器可以解决此问题。让我们看一下定义:多线程执行顺序控制?线程启动后,不会立即执行,而是等待CPU的资源调度,CPU的调度顺

在使用多线程和连接池的情况下如何保证SQL执行顺序?

谢谢你的邀请

!使用同步锁存器可以解决此问题。让我们看一下定义:

多线程执行顺序控制?

线程启动后,不会立即执行,而是等待CPU的资源调度,CPU的调度顺序由操作系统通过复杂算法计算出来。在启动线程得到CPU指令后,它将与主线程切换并执行run方法。因此,它自然不会按开始顺序执行,如下图所示:

如果希望线程按顺序执行,可以使用以下方法。

方法1:使用join方法

join方法的作用是停止正在执行的线程,释放CPU的控制,让调用join的线程立即执行,如下图所示:

方法2:executorservice

通过executorservice executors=Executors.newSingleThreadExecutor()创建线程池然后将所有要执行的线程任务提交到线程池中,如下图所示:

~]->Main->t1当主线程执行到T1时,T1线程开始执行,然后主线程向下执行,当主线程执行到T2时,属于parallel->Main->t2T2线程开始执行,main继续执行,属于parallel->t1->t2。T1和T2属于并行线程->M,等待子线程执行完成。