美文网首页android应用进阶
线程池和多线程同步的一些问题

线程池和多线程同步的一些问题

作者: 忧郁的老王 | 来源:发表于2018-03-23 16:47 被阅读1次

关于线程池和多线程同步的一点问题记录

1.线程池

newScheduledThreadPool可以设定预定工作时间,给定延迟的线程池

newFixedThreadPool每提交一个任务就创建一个新的工作线程,如果工作线程数量达到设定的最大值就把任务存入到池队列中

newCachedThreadPool创建一个可以根据需要创建新线程的线程池,可重用时就重用,没线程可用就新建,移除长时间不用的线程

newSingleThreadExecutor创建一个只有一个大小的线程池

这里的所有线程池都有一个核心线程数(single只有一个核心线程),一般来说核心线程数以内的线程不会在没有任务的时候被释放,但是这个也可以配置为容许核心线程被释放

2.volatile变量

volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值volatile仍然不能保证原子性,因此仍然有可能导致数据不同步的问题。使用场景为多个线程共享同一个数据,static和volatile的区别在于static修改之后不能保证立即回写到主内存而volatile会在修改完之后立即回写主内存。与synchronized的区别在于后者能保证原子性。保证原子性可以使用原子更新字段类 Atomic类三剑客。

相关文章

  • 线程池和多线程同步的一些问题

    关于线程池和多线程同步的一点问题记录 1.线程池 newScheduledThreadPool可以设定预定工作时间...

  • 看完这篇线程、线程锁与线程池讲解,面试随便问!

    前文: 单线程——多线程的开启——线程锁——线程同步工具——手写连接池——连接池工具类。 一、线程 1.线程的概念...

  • [Python系列]Python多线程

    背景:说到多线程,我们会想到的是:异步编程、同步(锁)、共享变量、线程池等等,那么Python里面多线程是如何实现...

  • 5月份第一周学习安排

    学习内容: java多线程及线程同步的方法(使用) java多线程各种同步方法的原理和优缺点 java多线程设计模...

  • Springboot | 线程池的学习,多线程池配置示例

    一、线程和进程,线程的生命周期二、单线程和多线程三、线程池的概念四、线程池的使用五、多线程池配置示例 一、线程和进...

  • Java:线程池Executors.newFixedThread

    摘要:Java,多线程,线程池 多线程编程和线程池概述 (1)多线程程序: 计算机可以实现多任务 ( multit...

  • Thread

    队列 线程锁 多线程,线程池 队列 多线程爬虫示例 多线程 自定义线程 线程池

  • iOS 多线程基础

    转自:iOS 多线程基础 - 简书 多线程同步和异步的区别?IOS中如何实现多线程的同步? 异步:可以同时执行多条...

  • iOS面试之多线程模块

    多线程 多线程内容如下: GCD NSOperation NSThread 多线程与锁 1.GCD 同步/异步和串...

  • 多线程基础知识

    创建、启动、控制、多线程同步、线程池 进程和线程 进程:是处于运行过程的程序,有一定的独立功能,是系统进行资源分配...

网友评论

    本文标题:线程池和多线程同步的一些问题

    本文链接:https://www.haomeiwen.com/subject/otpxcftx.html