喝酒不骑马

爱生活


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

leetcode215数组中的第K个最大元素

发表于 2018-09-15 | 分类于 leetcode

题目

在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。

阅读全文 »

Java线程池分析

发表于 2018-09-10 | 分类于 Java多线程

线程池,顾名思义,就是一个线程的池子,里面有若干线程,它们的目的就是执行提交给线程池的任务,执行完一个任务后不会退出,而是继续等待或执行新任务。线程池主要由两个概念组成,一个是任务队列,另一个是工作者线程,工作者线程主体就是一个循环,循环从队列中接受任务并执行,任务队列保存待执行的任务。

该文章参考老马的《Java编程的逻辑》

阅读全文 »

Java并发编程:Callable、Future和FutureTask(转)

发表于 2018-09-10 | 分类于 Java多线程

我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。
而自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务执行结果。今天我们就来讨论一下Callable、Future和FutureTask三个类的使用方法。

阅读全文 »

线程状态及各状态之间的转换

发表于 2018-09-10 | 分类于 Java多线程

本篇文章我们来谈一谈线程之间的状态和状态之间的转换。线程有一个状态概念,Thread有一个方法可以来获取线程的状态:public State getState(),返回类型是Thread.State,它是一个枚举类型,有如下值: NEW,RUNNABLE,BLOCKED,WAITING,TIMED_WAITING,TERMINATED;

阅读全文 »

Java并发之CyclicBarrier原理及使用

发表于 2018-09-05 | 分类于 Java多线程

CyclicBarrier字面意思是循环栅栏,它相当于是一个栅栏,所有线程在到达该栅栏后都需要等待其他线程,等所有线程都到达后再一起通过,它是循环的,可以用作重复的同步。

阅读全文 »

AbstractQueueSynchronizer使用和源码分析(转)

发表于 2018-09-05 | 分类于 Java多线程

AbstractQueuedSynchronizer简称AQS是一个抽象同步框架,可以用来实现一个依赖状态的同步器。
JDK1.5中提供的java.util.concurrent包中的大多数的同步器(Synchronizer)如Lock, Semaphore, Latch, Barrier等,这些类之间大多可以互相实现,如使用Lock实现一个Semaphore或者反过来,但是它们都是基于java.util.concurrent.locks.AbstractQueuedSynchronizer这个类的框架实现的,理解了这个稍微复杂抽象的类再去理解其他的同步器就很轻松了。

阅读全文 »
12…6
coding.H

coding.H

Just Coding

36 日志
6 分类
28 标签
© 2018 coding.H
总访问量次 | 总访客人 |
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.4