一 一 一☛ 并发基础知识✯
文章平均质量分 78
jinggod
这个作者很懒,什么都没留下…
展开
-
java线程副本--ThreadLocal
一、ThreadLocal 介绍 多线程并发之所以会不安全,就是因为线程不拥有资源,它们共享竞争着进程的资源,这样线程并发起来不安全,一般的解决方案便是用锁,保证每时每刻一个资源最多只能被一个线程拥有。而在java的多线程中,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。 ThreadLocal解决多线程的并发问题的思路很简单:就是为每一个线程维护一个副本变量,从而让线原创 2017-10-17 22:55:09 · 3910 阅读 · 0 评论 -
并发基础(八) java线程的中断机制
一、线程中断机制的原理 java中断机制是一种协作机制,也就是说通过中断并不能直接终止另一个线程,而需要被中断的线程自己处理中断。 中断 可以认为是线程之间的一种通信的消息类型,当线程接到了一个中断消息时,怎么处理是线程的控制的,甚至可以不处理,其他线程无法干涉。 在Core Java中有这样一句话: “没有任何语言方面的需求要求一个被中断的程序应该终止。中断一个线程只是为了引起该原创 2017-10-22 15:09:21 · 373 阅读 · 0 评论 -
并发基础(七) Thread 类的重要的方法--sleep、yeild、join
1、Thread.sleep(long millis )sleep( )是一个静态方法,让当前正在执行的线程休眠(暂停执行),而且在睡眠的过程是不释放资源的,保持着锁。 在睡眠的过程,可以被中断,注意抛出InterruptedException异常; 作用: 1、暂停当前线程一段时间; 2、让出CPU,特别是不想让高优先级的线程让出CPU给低优先级的线程try {原创 2017-10-22 18:24:18 · 553 阅读 · 0 评论 -
并发基础(六) 线程Thread类的start()和run()
一、start( )方法1、为什么需要start方法;它的作用是什么; start方法的作用就是将线程由NEW状态,变为RUNABLE状态。当线程创建成功时,线程处于NEW(新建)状态,如果你不调用start( )方法,那么线程永远处于NEW状态。调用start( )后,才会变为RUNABLE状态,线程才可以运行。 2、调用start()方法后,线程是不是马上执行? 线程不是马原创 2017-10-17 21:33:51 · 724 阅读 · 0 评论 -
并发基础(五) 创建线程的四种方式
线程的创建一共有四种方式:继承于Thread类,重写run()方法;实现Runable接口,实现里面的run()方法;使用 FutureTask 实现有返回结果的线程 使用ExecutorService、Executors 线程池。 在详细了解这四种方法之前,先来理解一下为什么线程要这样创建:形象点来说,Thread是一个工人,run()方法里面的便是他的任务栏,这个任务栏默认原创 2017-10-17 17:47:37 · 1690 阅读 · 0 评论 -
并发基础(四) java中线程的状态
一、线程的五种状态 线程的生命周期可以大致分为5种,但这种说法是比较旧的一种说法,有点过时了,或者更确切的来说,这是操作系统的说法,而不是java的说法。但对下面所说的六种状态的理解有所帮助,所以也写出来,作为参考。 1. NEW: 线程的新建状态,是指通过New关键字创建了Thread类(或其子类)的对象。 2. RUNNABLE: 这种情况指的是Thread类的对象调用了start(原创 2017-10-17 00:34:38 · 279 阅读 · 0 评论 -
并发基础(二)Thread 类API总结
Thread 类是java中的线程类,提供给用户用于创建、操作线程、获取线程的信息的类。是java线程一切的基础,掌握这个类是非常必须的,先来看一下它的API;1、字段摘要static int MAX_PRIORITY :线程可以具有的最高优先级。 static int MIN_PRIORITY :线程可以具有的最低优先级。 static int NORM_PRIORITY :原创 2017-10-16 17:16:34 · 242 阅读 · 0 评论 -
并发基础(一) Java中的线程
一、线程的简介 线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个应用程序可以看做是一原创 2017-10-14 19:32:34 · 290 阅读 · 0 评论 -
并发基础(三) java线程优先级
在不同的JVM中(JVM也算是一个操作系统),有着不同的CPU调度算法,对于大部分的JVM来说,优先级也是调度算法中的一个参数。所以,线程优先级在一定程度上,对线程的调度执行顺序有所影响,但不能用于保证线程的执行顺序,因为优先级仅仅是其中一个参数而已,其他参数还可能有线程的等待时间、执行时间等。而且操作系统也可抗能可以完全不用理会JAVA线程对于优先级的设定。 线程优先级的范围一般是1~10,默认原创 2017-10-16 21:00:40 · 354 阅读 · 0 评论 -
并发基础(九) java线程的终止与中断
1、简单了解一下:为何不赞成使用 Thread.stop、Thread.suspend 和 Thread.resume? suspend 、resume、stop方法分别完成了线程的暂停、恢复、终止的工作。不建议使用原因:是因为这三个方法带来的副作用,如suspend( )方法,调用后,线程就会一直占用资源睡眠,直到调用resume( )恢复后,才可以运行。这样很容易引发死锁。同样,stop原创 2017-10-22 17:16:00 · 290 阅读 · 0 评论