多线程
鲁四
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
多线程设计架构模式
观察者模式监控任务的生命周期利用观察者模式的思想,定义特殊的线程类,final 修饰重写run 方法,在其中各个时刻加入通知方法的调用。Sing Thread Execution 设计模式同一时刻只能有一个线程访问共享资源。通过对共享资源加锁实现。...原创 2022-03-05 10:51:47 · 619 阅读 · 0 评论 -
volatile 关键字
并发编程的三个特性1、原子性在一次处理中所有操作要么全执行,要么全不执行。2、可见性一个线程对共享变量进行了修改,另外的线程可以立即看到修改后的最新值。3、有序性保证程序代码在执行过程中的先后顺序不会被重排序。volatile关键字可以保证可见性和有序性。实现原理是,被其修饰的变量存在一个lock;前缀。这个相当于一个内存屏障,提供如下保障:1)确保指令重排序时不会将其后面的代码排到内存屏障之前。2)确保指令重排序时不会将其前面的代码排到内存屏障之后。3)确保在执原创 2022-02-06 12:11:52 · 492 阅读 · 0 评论 -
Java线程池
线程池,一个存放线程的容器,当有任务时,会使用其中的线程执行任务,当任务较多时,自动增加线程数量到阈值,当空闲时,自动减少活动线程到指定数量,释放资源。目的:重复利用线程,提高系统效率。需要具备的要素:1、任务队列,缓存要执行的任务。需要制定队列大小,防止内存溢出。2、线程数量管理,能够管理线程数量,根据任务多少,自动增加减少线程数量。涉及参数,init_count(初始线程数量),core_count(核心线程数量),max_count(最大线程数量).3、拒绝策略,当提交的任务没原创 2022-02-02 17:28:57 · 215 阅读 · 0 评论 -
synchronized关键字
synchronied关键字提供了一种锁机制,能够确保共享变量的互斥访问,避免发生数据不一致问题。包括monitor enter和monitor exit两个JVM指令。它可以修饰方法和代码块。synchronized锁定的底层原理是每个对象都与一个monitor相关联,当线程访问时,如果monitor的计数器为0,则意味着该monitor的lock还没有被获得,可以锁定并将计数器加1。如果当前monitor的计数器不为0,而且不是当前线程所有则阻塞等待。如果是当前线程拥有,则计数器加1。当线程原创 2022-01-22 20:34:19 · 345 阅读 · 0 评论 -
java 多线程基础---API
sleep 会使当前线程进入指定时间的休眠。yield方法属于一种启发式的方法,其会提醒调度器当前线程愿意放弃当前的CPU资源,如果CPU的资源不紧张,则会忽略这种提醒。线程的优先级不一定会起作用。一般使用默认的既可以,默认为5。数值越大,优先级越高。获取线程ID,getId()。该ID在整个JVM进程中会是唯一的,并且是从0开始逐次递增。JVM启动时,已经开辟了多个线程,占用了部分ID。interrupt()、interrupted()、isInterrupted()inter原创 2022-01-04 22:16:46 · 239 阅读 · 0 评论 -
java 多线程基础---守护线程
jvm的参数-Xss 栈内存大小设置单个线程栈大小,一般默认512~1024kb。守护线程一类比较特殊的线程,一般用于处理一些后台的工作,比如JDK的垃圾回收线程、游戏中获取用户最新信息线程。当JVM中没有一个非守护线程时,JVM的进程会退出。作用当希望在退出JVM时,一些线程能够自动关闭,可以考虑使用守护线程。设置方式设置守护线程的方法是调用setDaemon方法,true代表守护线程,false代表正常线程。需要在线程启动之前设置才能生效。子线程是否是守护线程与它原创 2022-01-03 20:07:13 · 231 阅读 · 0 评论 -
java 多线程基础---设计模式的应用
线程 (英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。1、模板设计模式一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。...原创 2022-01-03 12:19:06 · 440 阅读 · 0 评论
分享