随笔分类 - 多线程
摘要:【Java并发编程】Synchronized关键字实现原理 它的主要特性是同步锁、非公平锁、阻塞锁、可以保证线程安全(可见性、原子性、有序性) JDK1.6之后对Synchronized有优化,有个锁升级过程 1、Synchronized之保障线程安全 多线程情况下保障线程安全的方法有很多,一般都是
阅读全文
摘要:初始化线程的四种方式 继承 Thread public static void main(String[] args) { Thread01 thread01=new Thread01(); thread01.start(); } public static class Thread01 exten
阅读全文
摘要:ForkJoinPool线程池 “分而治之”是处理大数据的方法,著名的MapReduce就是采用这种分而治之的思路,简单点说,如果要处理1000个数据,但是不具备处理1000个数据的能力,可以只处理10个数据,可以把1000个数据分阶段处理100次,每次处理10个,把100次的处理结果进行合成,
阅读全文
摘要:从面向对象的角度出发,使用保障线程安全设计技术可以使我们不必再借助锁的情况下保障线程安全,避免锁可能导致的问题和开销 保障线程安全设计技术之局部变量 Java运行时(Java runtime)空间可以分为栈区,堆区与方法区(非堆空 间) 栈空间(Stack Space)为线程的执行准备一段固定大
阅读全文
摘要:ThreadFactory 线程池中的线程从哪里来呢?就是ThreadFoctory public interface ThreadFactory { Thread newThread(Runnable r); } Threadfactory里面有个接口,当线程池中需要创建线程就会调用该方法,也可以
阅读全文
摘要:什么是线程池 在真实的生产环境中,可能需要很多的线程来支撑整个应用,当线程数量非常多时,反而会耗尽CPU资源,如果不对线程进行控制和管理,反而会影响程序的性能,线程开销主要包括: 创建与启动线程的开销 线程销毁的开销 线程调度的开销 线程数量受限CPU处理器数量 线程池就是有限使用线程的一种常用
阅读全文
摘要:1.线程组 类似于计算机中,使用文件夹管理文件,也可以使用线程组来管理线程,在线程组中定义一组相似的线程,在在线程组中也可以定义子线程组。 Thread类有几个构造方法允许在创建线程时指定线程组,如果在创建线程时没有指定线程组,则该线程就属于父线程所在的线程组,JVM在创建main线程时会为
阅读全文
摘要:单生产和消费模式 在Java中,负责产生数据的模块的是生产者,负责使用数据的模块是消费者,生产者消费者解决数据的平衡问题,即先有数据才能使用,没有数据时消费者需要等待。 例如:有一个饭店,它有一个厨师和一个服务员,服务员必须等厨师把菜做好了,通知到服务员才能上菜,然后返回继续等待,厨师代表生产者,服
阅读全文
摘要:ThreadLocal的使用 除了控制资源访问外,还可以通过增加资源来保证线程安全,ThreadLocal主要解决为每个线程绑定自己的值,相当于增加了一个副本,在进行数据库访问的时候,多个线程需要自己独立的 static 成员变量吗,那就需要使用ThreadLocal。 什么是Lock显示锁 锁分为
阅读全文
摘要:什么是等待通知机制 在单线程中,要执行的操作需要满足一定条件才能执行,可以把这个操作放在if语句块中。 在多线程编程中,可能A线程的条件没有满足只是暂时的,稍后其他的线程B可能会更新条件使得A线程的条件得以满足,可以将A线程暂停,直到它的条件得到满足之后再将A线程唤醒 Atomic{ while(条
阅读全文
摘要:轻量级同步机制:volatile关键字 volatile的作用 关键作用是使变量在多个线程之间可见 public class VolatileText { public static void main(String[] args) throws InterruptedException { Stu
阅读全文
摘要:Java内存模型 线程同步 线程同步机制是一套适用于协调线程之间的数据访问机制,该机制可以保障线程安全 java平台提供的线程同步机制包括:锁、volatile关键字、final关键字,static关键字、以及相关API如object.wait/object.notify 锁概述 线程安全问题的产生
阅读全文
摘要:多线程创建方式一:继承Thread类 创建:继承Thread类,重写里面的Run方法 启动:创建子类对象,调用start方法 public class StartThread extends java.lang.Thread { @Override public void run() { for (
阅读全文

浙公网安备 33010602011771号