前要:一般的执行器会为每个任务单独创建线程,起码是分配单独的线程,即每个任务有其自己的线程。这样可以让任务并发执行。
问题:既然这样,为什么只用一个线程处理多个任务呢?
如果是这样,那一个线程某一时刻只处理一个任务。这样有什么好处呢?我们有讲到过,线程难就难在协调不同线程驱动的任务之间对内存和IO资源的使用,以使得这些资源不会同时被多个任务访问。
应用场景:当多个任务都需要访问同一个资源的时候,我们就需要对其进行控制,使得每次该资源只有一个线程在访问。这样才能保证线程安全。
未解决问题:利用SingleThreadExecutor最多只能保证在本应用范围内,一个资源同时只会有一个线程在访问。并不能保证其他应用不会对该资源进行访问。这问题该如何解决?