一、线程的概述 1.进程: 正在运行的程序称之为一个进程,进程负责了这个程序的内存空间分配,代表了内存中的执行区域。 问题:windows号称是多任务的操作系统,那么windows是同时运行多个应用程序吗? 从宏观的角度:windows确实是在同时运行多个应用程序。 从微观的角度:cpu是做了一个快 ...
分类:
编程语言 时间:
2017-09-21 19:32:15
阅读次数:
180
一:概念 线程通信中经常用到wait和notify,顾名思义,wait即让当前线程处于等待状态,notify通知锁对象 上的另一个线程被唤醒,这里的唤醒是指可以去争夺锁资源,nofityAll是唤醒该对象上面所有处于 wait状态的线程 二:示例 线程t2一运行就处于wait等待状态,然后线程t1运 ...
分类:
其他好文 时间:
2017-09-16 20:23:38
阅读次数:
213
学而时习之,不亦说乎! --《论语》 为什么说是颠覆? 1)任何对象都可以作为锁对象,锁对象的行为都是一样的吗?之前我一直认为锁对象的方法都是定义在Object类中,而所有类都是Object的子类,这些方法又都是native方法,那么用哪个对象作为锁对象又有什么区别呢? 2)一个线程对象a在run( ...
分类:
其他好文 时间:
2017-09-15 16:49:24
阅读次数:
216
SM01 锁定事物 SM02 系统信息 SM04 显示在线用户 SM12 删除,显示锁对象 SM13 看update request SM21 看下系统日志 SM30|SM31 维护table|view数据 SM32 维护表 SM35 进程监护 SM36 定义后台job SM37 查看后台job S ...
分类:
其他好文 时间:
2017-09-12 20:57:10
阅读次数:
245
一、synchronized 这货可以锁对象,锁变量,锁方法,锁代码,好像什么都能锁,缺点就是如果一个锁堵了,其他的只能等待忙并不能把当前的锁给释放。二、 ReentrantLockReentrantLock 类实现了Lock ,它拥有与synchronized 相同的并发性和内存语义,但是添加了类 ...
分类:
编程语言 时间:
2017-09-05 13:58:36
阅读次数:
155
Lock 实现提供了比使用synchronized 方法和语句可获得的更广泛的锁定操作,它能以更优雅的方式处理线程同步问题: public class LockTest { publicstaticvoid main(String[] args) { final Outputter1 output ...
分类:
其他好文 时间:
2017-09-03 00:29:18
阅读次数:
220
多个线程之间是不能直接传递数据交互的,它们之间的交互只能通过共享变量来实现。 在多个线程之间共享类的一个对象,这个对象是被创建在主内存(堆内存)中,每个线程都有自己的工作内存(线程栈),工作内存存储了主内存对象的一个副本,当线程操作对象时,首先从主内存复制对象到工作内存中,然后执行代码改变了值,最后 ...
分类:
编程语言 时间:
2017-09-02 18:04:44
阅读次数:
112
--首先得到被锁对象的session_id select session_id from v$locked_object; --通过上面得到的session_id去取得v$session的sid和serial#,然后对该进程进行终止。 SELECT sid, serial#, username, o... ...
分类:
其他好文 时间:
2017-08-18 12:40:31
阅读次数:
139
处理oracle表锁死,资源正忙问题,杀掉进程即可。 一.处理步骤: --1.获取被锁对象的session_id SELECT session_id FROM v$locked_object; --2.通过session_id获取v$session的sid和serial# SELECT sid, s ...
分类:
数据库 时间:
2017-08-15 11:26:28
阅读次数:
251
synchronized和Lock的区别synchronize锁对象可以是任意对象,由于监视器方法必须要拥有锁对象那么任意对象都可以调用的方法所以将其抽取到Object类中去定义监视器方法这样锁对象和监视器对象是同一个,只要创建了锁对象它既是锁对象同时也是监视器对象这样不能实现在一个锁对象上绑定多个 ...
分类:
编程语言 时间:
2017-08-08 21:37:49
阅读次数:
162