自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (2)
  • 收藏
  • 关注

原创 可重入锁,锁的公平和非公平

可重入锁表示 假如在一个方法上面有锁,如果在此方法内部也调用了锁,成为递归锁公平和非公平,公平是按照现场申请的先后顺序获得锁,会带来系统额外开销,相当于每一个线程都有一个排队时间,CPU会记性上下文切换,浪费时间非公平是直接拿...

2019-05-11 17:30:02 397

原创 双向链表增删逻辑

2019-05-11 11:59:18 213

原创 ThreadPoolExecutor JDK提供的线程池

1.工作图2.构造参数解释://public ThreadPoolExecutor(int corePoolSize,//int maximumPoolSize,//long keepAliveTime,//TimeUnit unit,//BlockingQueue<Runnable> workQueue,//RejectedExecutionHandler ha...

2019-05-10 23:50:25 159

原创 java实现自己的多个线程同时访问的读锁

1.写自己的多个读线程的同时访问类package lock.mycountdownlatch;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.AbstractQueuedSynchronizer;import java.util.concurrent.locks.Condition;imp...

2019-04-29 17:14:07 274

原创 JAVA实现自己的独占锁,并可重入

1。写一个自己的锁package lock.mylock;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.AbstractQueuedSynchronizer;import java.util.concurrent.locks.Condition;import java.util.co...

2019-04-29 16:30:01 599

原创 AQS中的acquire方法release方法

AQS中的acquire方法解释,首先调用tryAcquire方法判断当前线程是否拿到锁,没有拿到的话执行addWaiter方法把失败的这个线程打包成一个节点,通过循环CAS机制强行加入到队列的尾部,该方法的返回值会返回这个节点,再打包交给acquireQueued方法,acquireQueued方法会再次自旋尝试拿锁,如果尝试成功则首先找到前一个节点,也就是从锁上下来的节点,并将其脱离...

2019-04-29 16:10:25 934

原创 AtomicStampedReference 演示

、CAS的原理是利用计算机的CAS指令根据旧地址把旧值和新值做一次更新package cas;import java.util.concurrent.atomic.AtomicStampedReference;public class UseAtomicStampedReference { static AtomicStampedReference<String&g...

2019-04-28 12:43:56 160

原创 CAS对不同类型操作所用的类

2019-04-28 10:49:23 390

原创 Callable Future FutureTask 使用例子

package future;import java.util.Random;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;public class UseFuture { /...

2019-04-28 10:12:55 284

原创 Semaphoore 示例

1.第一步,实现一个数据库连接类,注意这里是简写版,需要实现很多方法和导入很多类package DBPoolSemaphoore;import com.mysql.jdbc.*;/***类说明:数据库连接的平庸实现*/public class SqlConnectImpl implements Connection{ /*拿一个数据库连接*/ public...

2019-04-27 23:31:05 118

原创 Cyclicbarrier 控制线程等待和执行的例子

package cyclicbarrier;import java.util.Map;import java.util.Random;import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.ConcurrentHashMap;import java.util.concurrent.Cy...

2019-04-27 22:08:18 237

原创 RecursiveTask 例子

1.先定义一个单线程工具类用来做对比package ForkJoinTest;import java.util.Random;public class MakeArray { public static final int ARRAY_LENGTH= 400000000; public static final int THRESHOLD= 47; ...

2019-04-27 13:24:02 658

原创 RecursiveAction 遍历文件夹

package ForkJoinTest;import java.io.File;import java.util.ArrayList;import java.util.Collection;import java.util.List;import java.util.concurrent.ForkJoinPool;import java.util.concurrent.Recurs...

2019-04-27 13:11:03 378

原创 CountDownLatch并发编程

1.定义一个子弹池类package countdownlatch;public class BulletPool { //总共的子弹数量 public static Integer maxBullet = 40000; // 拿子弹方法,拿了多少子弹就减少多少 public Integer getBullet(Integer bulnum){ ...

2019-04-27 13:07:39 296

原创 RecursiveTask 例子

1、普通单线程累加例子package ForkJoinTest;import java.util.Random;public class MakeArray { public static final int ARRAY_LENGTH= 400000000; public static final int THRESHOLD= 47; public ...

2019-04-27 11:13:19 320

原创 RecursiveAction 用法

package ForkJoinTest;import java.io.File;import java.util.ArrayList;import java.util.Collection;import java.util.List;import java.util.concurrent.ForkJoinPool;import java.util.concurrent.Recurs...

2019-04-27 11:11:52 1786 1

原创 JAVA 简单连接池实现

1.定义连接池类package com.whx.conpool;import java.sql.DriverManager;import java.sql.SQLException;import java.util.LinkedList;import javax.xml.ws.FaultAction;import com.mysql.jdbc.Connection;publ...

2019-04-27 10:32:49 350

原创 notify notifyall sleep join wait 方法解释

wait方法表示当前线程等待状态,一般可以用在syn代码块的中间部分,被唤醒之后执行后面的代码而notifyall和notify 一般被放在 syn代码块的最后1.线程休眠sleep();:线程有优先级,但是我们可以用此方法人为的改变它们的优先级,让线程暂停,它其他线程获得分配空间。用法:Thread.sleep(2000);//休眠两秒2.线程让步yield();就是让出自己的分...

2019-04-27 00:19:24 148

原创 java wait notifyall 例子

1,第一步定义一个学生类public class Student { public Student(int age){ this.age=age; } int age; public int getAge() { return age; } public void setAge(int age) {...

2019-04-26 16:27:42 168

原创 java ThreadLocal例子

package test;public class UseThreadLocal { private static ThreadLocal<Integer> threadLocal = new ThreadLocal<Integer>(){ protected Integer initialValue(){ ...

2019-04-26 11:49:59 307

原创 java volatile关键字使用场景

最轻量的同步volatile 关键字通常使用在一次写,多次读的场景,使线程之间可以实时拿到更新的结果,但多次写却不能保证实时拿到package test;public class ThreadJoinTest { private static class Count extends Thread{ private ThreadJoinTest simplOpe...

2019-04-26 09:58:44 1022

原创 synchronized 使用场景

package test;public class ThreadJoinTest { private static class Count extends Thread{ private ThreadJoinTest simplOper; Object obj = new Object(); publ...

2019-04-25 23:04:07 402

原创 Thread的setDeamon方法

该方法可以把主线程变成守护线程通过设置 setDeamon(true)来实现在守护线程中finally方法不一定起作用

2019-04-25 23:02:09 241

原创 JAVA线程运行图

2019-04-25 16:38:31 355

原创 Thread的start方法和run方法的区别

start运行的是当前实例化的Thread对象的线程而run方法是运行在主线程中的start方法只运行一次,而run方法是调用几次运行几次

2019-04-25 16:00:02 141

原创 interrupt方法使用场景

package test;public class NewThread { private static class UseThread extends Thread{ public UseThread(String name){ super(name); } public void run ...

2019-04-25 15:41:53 1236

原创 java Thread类的stop,interrupt,isinterrupt 方法概述以及区别

Thread类正确终止进程的方法应该用 interrupt()方法,而不应该直接使用stop方法interrupt() 方法是对线程发起一个中断信号,但并不是真正的终止一个线程,该方法是给线程标志一个线程中断位,不代表立刻中断,该线程也可以不予理财,所以在JAVA当中线程是协作式的,而不是抢占式isinterrupted() 判断当前线程是否被终断(常用)interrupted(...

2019-04-25 15:08:36 940

原创 JAVA中thread类和Runable的区别

Thread类是JAVA线程的抽象,而Runable是逻辑或任务的一种抽象接口示例:package test;public class NewThread { private static class UseThread extends Thread { public void run(){ super.run(); ...

2019-04-25 14:31:35 189

原创 JAVA多线程概念

并行:同一个CPU同时执行多个任务并发:多个CPU时间轮换机制运行多个任务简单监控线程代码:public static void main(String[] args) { ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean(); ThreadInfo[]...

2019-04-25 12:13:55 126

ORACLE原厂资料CONCEPTS

ORACLE原厂资料CONCEPTS,这本书讲的非常详细,从体系结构到如何优化SQL等等,很不错

2013-06-21

Cognos 8.4 安装部署

Cognos 8.4 安装部署 , 里面附有完整的COGNOS8.4版本的安装部署过程,希望帮助到你

2013-03-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除