上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 37 下一页

2017年3月23日

java 多线程8 : synchronized锁机制 之 方法锁

摘要: 脏读一个常见的概念。在多线程中,难免会出现在多个线程中对同一个对象的实例变量或者全局静态变量进行并发访问的情况,如果不做正确的同步处理,那么产生的后果就是"脏读",也就是取到的数据其实是被更改过的。注意这里 局部变量是不存在脏读的情况多线程线程实例变量非线程安全看一段代码:public class ThreadDomain13 { private int num = 0; ... 阅读全文

posted @ 2017-03-23 18:00 signheart 阅读(8500) 评论(0) 推荐(0) 编辑

java 多线程1:进程与线程概述

摘要: 进程和线程谈到多线程,就得先讲进程和线程的概念。进程进程可以理解为受操作系统管理的基本运行单元。360浏览器是一个进程、WPS也是一个进程,正在操作系统中运行的".exe"都可以理解为一个进程线程进程中独立运行的子任务就是一个线程。像QQ.exe运行的时候就有很多子任务在运行,比如聊天线程、好友视频线程、下载文件线程等等。 为什么要使用多线程如果使用得当,线程可以有效地降低程序的开发和维护等成本,... 阅读全文

posted @ 2017-03-23 17:59 signheart 阅读(306) 评论(0) 推荐(0) 编辑

java 多线程2:Thread的实例方法

摘要: Thread类中的方法调用方式:学习Thread类中的方法是学习多线程的第一步。在学习多线程之前特别提出一点,调用Thread中的方法的时候,在线程类中,有两种方式,一定要理解这两种方式的区别:1、this.XXX() 和 线程对象实例.XXX() 这里要首先参考 多线程 Thread.currentThread().getName() ,对象实例.getName() 和 this.getNam... 阅读全文

posted @ 2017-03-23 17:59 signheart 阅读(272) 评论(0) 推荐(0) 编辑

java 多线程3:Thread类中的静态方法

摘要: Thread类中的静态方法Thread类中的静态方法表示操作的线程是"正在执行静态方法所在的代码块的线程"。为什么Thread类中要有静态方法,这样就能对CPU当前正在运行的线程进行操作。下面来看一下Thread类中的静态方法:1、currentThread()currentThread()方法返回的是对当前正在执行线程对象的引用。看一个重要的例子,然后得出结论:public class MyTh... 阅读全文

posted @ 2017-03-23 17:59 signheart 阅读(557) 评论(0) 推荐(0) 编辑

Thread.currentThread().getName() ,对象实例.getName() 和 this.getName()区别

摘要: 首先要明白 this.XXX 的使用场景 使用Thread.currentThread().getName()和使用this.getName()和对象实例.getName(),都可以得到线程的名称,但是使用this调用getName()方法只能在本类中,而不能在其他类中,更不能在Runnable接口中,所以只能使用Thread.currentThread().getName()获取线程的名称,否则... 阅读全文

posted @ 2017-03-23 17:59 signheart 阅读(12631) 评论(3) 推荐(3) 编辑

java 多线程4: java线程的优先级

摘要: Java线程的优先级取值范围是1 (Thread.MIN_PRIORITY ) 到 10 (Thread.MAX_PRIORITY )。如果没有设置, 线程默认的优先级是NORM_PRIORITY。这个值是5。getPriority()和setPriority(int newPriority) 是实例方法这两个方法用于获取和设置线程的优先级,优先级高的CPU得到的CPU资源比较多,设置优先级有助于... 阅读全文

posted @ 2017-03-23 17:59 signheart 阅读(569) 评论(0) 推荐(0) 编辑

线程池

摘要: 服务器应用程序经常需要处理执行时间很短而数目巨大的请求, 如果为每一个请求创建一个新的线程, 会导致一些问题的出现, 如:1. 性能瓶颈. 线程的创建和销毁需要执行大量的后台操作, 如果单个请求的执行时间很短, 有可能花在创建和销毁线程上的时间大于真正执行请求的时间.2. 可能会导致资源不足. 大量的并发请求意味着需要创建大量的线程, 过多的线程存在会吞噬大量的系统资源, 而且CPU需要在这些线程... 阅读全文

posted @ 2017-03-23 17:58 signheart 阅读(362) 评论(0) 推荐(0) 编辑

锁、状态依赖与协同以及锁优化

摘要: 从谈Java并发开始synchronized和锁就时常被谈到,上篇讲Java内存模型特点的时候,也说道用synchronized几乎可以同时满足原子性、可见性和有序性三点,那本篇就来说一下锁的概念、synchronized和API层面Lock锁框架的比较选择。后面也会讲到状态依赖与协同问题、条件队列和锁优化。0. 先说说synchronized。synchronized关键字可谓是并发里的常见词,... 阅读全文

posted @ 2017-03-23 17:58 signheart 阅读(478) 评论(0) 推荐(0) 编辑

java timer timertask mark

摘要: 其实就Timer来讲就是一个调度器,而TimerTask呢只是一个实现了run方法的一个类,而具体的TimerTask需要由你自己来实现,例如这样:123456Timer timer = new Timer();timer.schedule(new TimerTask() { public void run() { System.out.println("ab... 阅读全文

posted @ 2017-03-23 17:58 signheart 阅读(225) 评论(0) 推荐(0) 编辑

可重入锁

摘要: 摘要从使用场景的角度出发来介绍对ReentrantLock的使用,相对来说容易理解一些。场景1:如果发现该操作已经在执行中则不再执行(有状态执行)a、用在定时任务时,如果任务执行时间可能超过下次计划执行时间,确保该有状态任务只有一个正在执行,忽略重复触发。b、用在界面交互时点击执行较长时间请求操作时,防止多次点击导致后台重复执行(忽略重复触发)。以上两种情况多用于进行非重要任务防止重复执行,(如:... 阅读全文

posted @ 2017-03-23 17:58 signheart 阅读(376) 评论(0) 推荐(0) 编辑

上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 37 下一页

导航