随笔分类 - 【Java】--并发编程
摘要:本文介绍另外两种创建多线程的方式,这两种方式我们在实际中会用的多一点,尤其是线程池。而在前面文章中我们讲述了创建线程最基本的两种方式:一种是直接继承Thread,另外一种就是实现Runnable接口。但是这两种方式创建线程有一个缺陷,那就是无法获取到线程运行后的结果,因为这两个方式都是重写了 run
阅读全文
摘要:1、什么是线程通信 线程通信:就是指多个线程在处理同一个资源,但是需要处理的动作(任务)不同,此时我们就需要使用到线程的通信来解决多线程之间对同一资源的使用和操作。 本文介绍的线程通信使用到三种方式: ①、使用等待通知机制控制线程通信(synchronized + wait + notify) ②、
阅读全文
摘要:1、线程安全问题 线程安全问题产生的主要原因有两个:存在共享资源和多个线程共同操作共享数据。就是当多个线程同时操作同一个可共享的资源时导致出现的一些不必要的问题,此时就出现了线程的安全问题,这个时候就需要使用到线程同步。 这里通过一个非常经典的案例卖票来演示线程安全问题(三个窗口总共卖100张票):
阅读全文
摘要:我们知道JVM的线程调度策略是优先级抢占式调度。即是指能够大概率的让优先级高的线程抢占到CPU资源(注意并不是优先高的先执行,执行是随机的,只是抢占的概率会大很多,后面的线程优先级会有举例),如果线程的优先级相同,那么就随机选择一个线程,使其占用CPU资源。所以当一个线程创建并且启动之后,它不会一直
阅读全文
摘要:多线程的创建有以下三种方式: 继承Thread类,重写run方法 实现Runnable接口,重写run方法 匿名内部类 其实还可以使用JDK1.5之后的Callable类和线程池的方式创建,但是该系列只是Java多线程入门,而且我也对线程池的使用不是很了解,所以就没有写它们了。但是好像上面的这些方式
阅读全文
摘要:1、程序、进程、线程、多线程 Java多线程的知识现在是面试或笔试中经常会问的问题,主要是考察面试者对并发是否有所了解。当然这一系列Java多线程只是入门,并不涉及到很深入的并发编程知识。我们在学习Java多线程之前需要先了解以下几个概念。 ①、程序(program) 程序这个词现在应该无人不知,无
阅读全文