.一、概述:从c开始,任何一门语言的默认执行顺序都是按照一条路走到黑的方式。但是,当我们需要同时进行多项任务的时候该怎么办呢?这时我们可以将一个任务拆分成多个小任务同时处理(深层一点讲,就是虽然我单线程也能够做的到,但是cpu没有最高效率的利用,时间也没有高效的利用)。所以:多线程解决的是并发的问题,目的是使任务执行效率更高,实现前提是“阻塞”。它们看上去时同时在执行的,但实际上只是分时间片试用c
分类:
编程语言 时间:
2018-09-23 19:20:29
阅读次数:
174
多线程先明白一个术语“中断状态”,中断状态为true,线程中断。 interrupt():就是通知中止线程的,使“中断状态”为true。 isInterrupted():就是打印中断状态的,然后不对中断状态有任何操作。 interrupted():检测运行这个方法的线程的中断状态,注意,是运行这个方 ...
分类:
编程语言 时间:
2018-09-23 18:06:59
阅读次数:
120
什么叫内存可见性: 一个线程对共享变量值的修改,能够及时的被其他线程看到。 什么又叫共享变量: 如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量 在Java中,所有实例域、静态域和数组元素都存储在堆内存中,堆内存在线程之间共享。 局部变量(Local Variabl ...
分类:
编程语言 时间:
2018-09-21 18:26:36
阅读次数:
143
1 package org.study2.javabase.ThreadsDemo.sync; 2 3 /** 4 * @Auther:GongXingRui 5 * @Date:2018/9/20 6 * @Description: 单例模式 - 二次确认,提高效率 7 **/ 8 public ... ...
分类:
编程语言 时间:
2018-09-20 16:19:03
阅读次数:
128
1 package org.study2.javabase.ThreadsDemo.sync; 2 3 /** 4 * @Auther:GongXingRui 5 * @Date:2018/9/18 6 * @Description:synchronized线程锁 7 **/ 8 public cl... ...
分类:
编程语言 时间:
2018-09-20 15:58:50
阅读次数:
175
线程,是我们项目中绕不过的重点领域。提到线程,就常会听到线程安全的术语。那什么是线程安全呢?通俗点说,就是线程访问时不产生资源冲突。其实,这是一个有点难以定义的概念,不是很容易让人一听就懂的概念。“一个类可以被多个线程安全调用就是线程安全的”《Java并发编程实践》。 来说说静态变量、实例变量、局部 ...
分类:
编程语言 时间:
2018-09-20 15:56:52
阅读次数:
314
本文只需要考虑一件事:如何使单例模式遇到多线程是安全的、正确的 1.立即加载 / "饿汉模式" 什么是立即加载?立即加载就是使用类的时候已经将对象创建完毕,常见的实现办法就是直接 new 实例化。 打印结果: 控制台打印的 hashCode 是同一个值,说明对象是同一个,也就实现了立即加载型单例设计 ...
分类:
编程语言 时间:
2018-09-19 23:29:09
阅读次数:
184
线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理就不能成为一个整体。线程间的通信就是成为整体的必用方案之一,可以说,使线程间进行通信后,系统之间的交互性会更强大,在大大提高CPU利用率的同时还会使程序员对各线程任务在处理的过程中进行有效的把控与监督。在本章中需要着重掌握的技术点如下: 使用 ...
分类:
编程语言 时间:
2018-09-19 14:48:10
阅读次数:
201
参考书籍《java多线程编程核心技术》 都是基于wait/notify实现的 一个生产者和一个消费者:操作值 线程类 测试运行 打印输出 如果以此为基础,设计多个生产者和多个消费者,那么运行过程中很可能会发生假死的情况,也就是所有线程都呈现等待的状态 多个生产者与多个消费者:操作值 修改Produc ...
分类:
编程语言 时间:
2018-09-18 19:08:17
阅读次数:
176
进程和线程: 一个程序运行后至少有一个进程,一个进程里面可以包含多个线程,但是至少要包含一个线程。 线程的创建和启动: 方式1:继承Thread类创建线程类,步骤 1.定义Thread类的子类,重写该类的run()方法,该run()方法的方法体就代表了线程需要完成的任务,因此run()方法也被称为线 ...
分类:
编程语言 时间:
2018-09-18 11:19:24
阅读次数:
136