最新文章列表

排查CPU故障的方法和技巧

一个应用占用CPU很高原因:1.计算密集;2.死循环 定位步骤: 1:top命令,发现Java进程CPU占用率 2:ps aux | grep PID命令:定位到具体线程 3:ps -mp pid -o THREAD,tid,time显示线程列表 ps -mp pid -o THREAD,tid,time首先找到了耗时最高的线程,其次将需要的线程ID转换为16进制格式:printf " ...
LZK_258 评论(0) 有978人浏览 2018-07-19 14:56

java多线程间的通信实例

----线程间的通信 public class ListAdd1 { private volatile static List list = new ArrayList(); public void add(){ list.add("bjsxt"); } public int size(){ return list.size(); } public st ...
st4024589553 评论(0) 有1325人浏览 2018-07-13 11:00

线程的基本知识总结

### (一)创建线程的方式 (1)实现Runnable接口 (2)继承Thread类 推荐使用接口,能够做到定义与实现分离,耦合更低 ### (二)关于线程的优先级   thread2.setPriority(Thread.MAX_PRIORITY)   等级越高,优先运行 ### (三)关于线程的yield的方法 关于yield方法,是指当前线程可能运行不太重要的任务,可以通 ...
qindongliang1922 评论(0) 有1021人浏览 2018-06-27 16:27

建立线程

建立线程: 继承Thread类,重写run()方法; 实现Runnable接口,实现run()方法; public class TestThread extends Thread{ public void run(){ boolean flag= true; System.out.println(getName()+"开始了&qu ...
左耳的鱼 评论(0) 有456人浏览 2018-04-08 17:48

worker模式

今天来学学,大家也好对线程池有一个更好的理解。 public class Main {      public static void main(String[] args) {          Channel channel = new Channel(5);   // 工人线程的數量,即线程池内的线程数目           channel.startWorkers();//启动线程池内 ...
huangjinjin520 评论(0) 有596人浏览 2018-03-29 20:16

面试编程题的实验

昨天某知名互联网企业对我做了一个电话面试。然后叫我在他给的一个网址上面做一个编程题。 题目是这样的。 共计9个苹果,有2只猴子,一个猴子每次拿2个苹果,一个猴子每次拿3个苹果,如果剩余的苹果不够猴子每次拿的数量,则2只猴子停止拿苹果,请用java多线程模拟上面的描述 描述是挺简单的。但当在电话面试的情况下,又是一个比较知名公司的限时下。我那小心肝是紧张的,再加上是在一个非IDE环境下写 ...
笨小孩在早起 评论(0) 有967人浏览 2018-03-28 19:38

java四种线程池实例 (kaigege)

Java通过Executors提供四种线程池: 1.newCachedThreadPool: 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 2.newFixedThreadPool: 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。 3.newScheduledThreadPool: 创建一个定长线程池,支持定时及周期性任务执行。 ...
st4024589553 评论(0) 有635人浏览 2018-03-28 11:03

生产者-消费者模式实现

生产者是指:生产数据的线程 消费者是指:使用数据的线程 生产者和消费者是不同的线程,他们处理数据的速度是不一样的,一般在二者之间还要加个“桥梁参与者”,用于缓冲二者之间处理数据的速度差。 下面用代码来说明: //生产者   public class MakerThread extends Thread {      private final Random random;      priva ...
huangjinjin520 评论(0) 有1123人浏览 2018-03-26 22:45

java并发之同步辅助类Phaser

Phaser含义: 更加复杂和强大的同步辅助类。它允许并发执行多阶段任务。当我们有并发任务并且需要分解成几步执行时,(CyclicBarrier是分成两步),就可以选择使用Phaser。Phaser类机制是在每一步结束的位置对线程进行同步,当所有的线程都完成了这一步,才允许执行下一步。 跟其他同步工具一样,必须对Phaser类中参与同步操作的任务数进行初始化,不同的是,可以动态的增加或者减少任务数 ...
huangjinjin520 评论(2) 有1038人浏览 2018-03-19 21:46

java并发之同步辅助类CyclicBarrier

CyclicBarrier含义: 栅栏允许两个或者多个线程在某个集合点同步。当一个线程到达集合点时,它将调用await()方法等待其它的线程。线程调用await()方法后,CyclicBarrier将阻塞这个线程并将它置入休眠状态等待其它线程的到来。等最后一个线程调用await()方法时,CyclicBarrier将唤醒所有等待的线程然后这些线程将继续执行。CyclicBarrier可以传入另一个 ...
huangjinjin520 评论(0) 有771人浏览 2018-03-18 20:13

Java 线程池源码分析

目录   FutureTask ExecutorCompletionService AbstractExecutorService ThreadPoolExecutor   FutureTask            FutureTask类 结构  FutureTask实现了RunnableFuture接口,而RunnableFuture继承了Runnable ...
zhangwei_david 评论(0) 有2848人浏览 2018-03-12 21:19

Wait()、sleep()和yield()方法的区别

Wait()、sleep()和yield()方法的区别 1、所属类不同:wait()是Object类中的非静态方法;sleep()是Thread类中的静态方法;yield()也是Thread类中的静态方法。 2、作用不同:wait()用于线程同步或者线程之间进行通信;sleep()用于休眠当前线程,并在指定的时间点被自动唤醒;yield()临时暂停当前正在执行的线程,来让有同样优先级的正在等待的 ...
David_Wrong 评论(0) 有954人浏览 2018-02-24 15:06

等待/通知之交叉备份实例

题目:创建20个线程,其中10个线程是将数据备份到A数据库中,另外10个线程将数据备份到B数据库中,并且备份A数据库和B数据库是交叉进行的。   首先创建出20个线程,效果如图3-41所示。   通过一些手段将这20个线程的运行效果变成有序的,如图3-42所示。 public class DBTools { //确保备份数据库A首先执行 private vol ...
flyvszhb 评论(0) 有366人浏览 2018-02-08 16:36

Java 并发编程:volatile的使用及其原理

Java 并发编程:volatile的使用及其原理   Java并发编程系列: Java 并发编程:核心理论  Java并发编程:Synchronized及其实现原理 Java并发编程:Synchronized底层优化(轻量级锁、偏向锁) Java 并发编程:线程间的协作(wait/notify/sleep/yield/join)
Prophesy 评论(0) 有371人浏览 2018-01-26 15:54

Java并发编程:Synchronized及其实现原理

Java并发编程:Synchronized及其实现原理Java并发编程系列:Java 并发编程:核心理论 Java并发编程:Synchronized及其实现原理Java并发编程:Synchronized底层优化 ...
Prophesy 评论(0) 有416人浏览 2018-01-26 15:50

java实现定时任务的三种方法

/** * 普通thread * 这是最常见的,创建一个thread,然后让它在while循环里一直运行着, * 通过sleep方法来达到定时任务的效果。这样可以快速简单的实现,代码如下: * @author GT * */ public class Task1 { public static void main(String[] args) { // run in a secon ...
caichenglong 评论(0) 有493人浏览 2018-01-09 09:51

ThreadLocal共享变量2

import java.util.Random; public class ThreadLocalTest { private static ThreadLocal<Integer> x = new ThreadLocal(); public static void main(String[] args) { for (int i = ...
firkeuuuu 评论(0) 有572人浏览 2018-01-05 16:12

ThreadLocal共享变量1

import java.util.Random; public class ThreadLocalTest { private static ThreadLocal<Integer> x = new ThreadLocal(); public static void main(String[] args) { for (int i = ...
firkeuuuu 评论(0) 有511人浏览 2018-01-05 15:46

最近博客热门TAG

应用服务器(43289) Spring(40812) Hibernate(33330) Tomcat(28345) 框架(27200) 设计模式(24056) Servlet(23314) Struts(22805) Bean(22194) 企业应用(18270) thread(15826) 多线程(14801) SUN(11436) 虚拟机(11382) Cache(11314) Security(8002) SSH(7109) DAO(6880) MVC(6206) AOP(6187)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics