自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (1)
  • 收藏
  • 关注

原创 多线程之join方法

一.前言:       在很多情况下,我们都是通过主线程创建并启动子线程的,如果子线程中需要耗费大量的时间计算的话,主线程往往会比子线程先结束,这个时候就会导致有时候主线程想获取子线程计算之后的结果,但是却获取不到。这个时候,我们就可以通过join方法来解决这个问题。二.join方法的作用:join方法的作用是使所属的线程对象x正常执行run()方法中的任务,而使当前线程z进行无限期的...

2018-10-31 16:43:16 9482 1

原创 线程之间的通信方式:wait/notify

1.什么是线程间的通信通信,顾名思义就是一种通知交通的方式,在多线程的环境下,如果各个线程之间可以互相通信的话,可以很好地提高工作效率,提高CPU的利用率。Java线程之间的通信由Java内存模型(本文简称为JMM)控制,JMM决定一个线程对共享变量的写入何时对另一个线程可见。从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存(Main Memory)...

2018-10-30 15:07:16 766

原创 多线程之可见性:volatile

一.什么是volatile,它的作用是什么我们知道线程安全的三大核心就是原子性、可见性和顺序性,synchronized可以实现原子性,而volatile就是来实现可见性。那么什么是可见性呢?我们知道,在现代计算机中,由于 CPU 直接从主内存中读取数据的效率不高,所以都会对应的 CPU 高速缓存,先将主内存中的数据读取到缓存中,线程修改数据之后首先更新到缓存,之后才会更新到主内存。如...

2018-10-30 11:34:33 2096

原创 什么是Lock?什么是ReentrantLock?ReentrantReadWriteLock又是啥?

ps:不要将获取锁的过程写在try块中,因为如果在获取锁(自定义锁的实现)时发生了异常,异常抛出的同时,也会导致锁无故释放。目录一.什么是Lock对象?二.使用ReentrantLock实现线程同步三.使用Lock对象实现线程间通信四. 使用Lock对象和Condition实现等待/通知实例五.使用Lock对象和多个Condition实现等待/通知实例六、公平锁和非公平...

2018-10-27 00:23:35 1592 1

原创 synchronized原理及其相关特性

写在前面:尽量不要使用 synchronized(String a) 因为在JVM中,字符串常量池具有缓冲功能!而这个会导致线程一直循环,因为String的引用只有一个,会导致只有一个线程不断循环执行。1.synchronizedsynchronized:可以在任意对象及方法上加锁,而加锁的这段代码称为互斥区或临界区。synchronized可以保证方法或者代码块在运行时,同一时刻只有...

2018-10-26 14:59:40 1668

原创 ThreadLocal原理详细解析

1.ThreadLocal概念ThreadLocal,可以叫做线程本地变量或线程本地存储,顾名思义就是ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。其实就是通过空间换时间的方式来取得对每个线程各自变量的共享。变量值的共享可以使用 public static 变量的形式,所有的线程都使用同一个被 public static 修饰的变量。Th...

2018-10-26 11:57:21 481

原创 java面试/笔试题目之多线程及锁 (持续更新中)

GitHub:https://github.com/JDawnF前言:这一模块可以参照徐刘根大佬的博客。目录一.线程和进程的概念、并行和并发的概念二.创建线程的方式及实现三.线程间通信的方式四.说说 CountDownLatch、CyclicBarrier 原理和区别五.说说 Semaphore 原理六.说说 Exchanger 原理七.ThreadLocal ...

2018-10-24 11:35:52 1514

原创 什么是PO,VO,DTO,DAO,POJO

1.POPO(persisent object),即持久对象,在一些Object/Relation Mapping工具中,能够做到维护数据库表记录的persisent object完全是一个符合Java Bean规范的纯Java对象,没有增加别的属性和方法。主要是对应数据库中的字段,可以简单认为一个PO对应数据库中的一张表,其中po对象的属性对应数据库中的字段。持久对象由insert数据库创建...

2018-10-17 17:52:20 637

原创 eclipse导入项目

除了可以通过import或者直接用svn插件导入svn上的项目之外,还可以现将svn上的项目下载到本地,如果是Windows上的话直接用乌龟svn,检查即可;如果是Mac上的话,可以用SmartSVN check out项目。1.file--new-- dynamic web project,创建一个新的动态web项目;2.选择项目路径3.选择相应编译完成的路径 4.选择存放页...

2018-10-17 16:38:56 948

原创 java工程师常用的Linux命令(crontab,netstat,service等命令)

开发过程中,难免会需要部署,所以也需要掌握一些基本的Linux命令,那些简单的ls,touch,mkdir,mv,cp等等这些就不列举了。1.netstat:显示各种网络相关信息这是一个非常实用的命令,当我们要查看某个端口是否开放的时候,就可以通过这个命令查询。此外,这个命令还可以用于显示路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 ...

2018-10-10 09:51:57 215

Java开源项目

提高个人技术的开源项目,可以自己下下来好好研究一下,提高自己的技术

2018-11-11

空空如也

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

TA关注的人

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