黑马程序员技术交流社区

标题: 线程中锁是怎么回事 [打印本页]

作者: 刘江华    时间: 2011-10-15 20:59
标题: 线程中锁是怎么回事
线程一般是应用在哪些地方?线程中的锁又是怎么回事。
作者: 余志强    时间: 2011-10-15 21:00
同步锁(Lock):
    同步锁是JDK1.5之后才有的,如:
private final ReentrantLock lock = new ReentrantLock ();
public void test(){
    lock.lock();
    //.....
}

作者: 敖东    时间: 2011-10-15 21:35
如果有多个功能要同时实现,就需要考虑到使用线程,这样可以提高效率的。

Lock 实现提供了比使用 synchronized 方法和语句可获得的更广泛的锁定操作。

锁是控制多个线程对共享资源进行访问的工具。通常,锁提供了对共享资源的独占访问。一次只能有一个线程获得锁,对共享资源的所有访问都需要首先获得锁。
作者: 陆华山    时间: 2011-10-16 00:42
多个线程共享一个数据才会出现锁,让多个线程都在锁外面,一次进一个锁,保证了安全性
作者: 724681149    时间: 2011-10-16 15:03
线程的同步一般用在:
1,当多个线程访问同一个共享数据的时候。
2,共享数据在多行执行语句中执行。
符合以上两点就得考虑线程同步了。
这时需要使用锁来完成同步,只有具有相同的所才可能执行该同步锁內的代码块。当一个线程在加锁的同步代码块中执行时,该线程若没有释放“执行权”的话,具备该所的线程是无限进入执行该代码的,这样就是保证了代码块的原子性,也就是线程间的互斥。
作者: 罗亚东    时间: 2011-10-16 15:45
线程一般用于企业级的应用,桌面应用很少,如果强调这个系统的多任务性,那么就应该用到多线程了。
比如:你要实现一个聊天室系统或是实现一个C\S架构这样的系统,你就应该考虑用多线程了,
你可以为每一个请求服务的客户端创建一个线程,这样就能够大大的提高服务器端的执行效率,
因为线程间的切换总是要比进程间的切换花费更少的资源。
线程还用于一些服务,比如定时提醒,包括发送Email、短信等,
多线程很容易访问共享的资源,所以需要锁定,防止某线程正在用的被其他线程调用,
所以需要先锁定该区域,用完了再释放。这就是锁的概念。

作者: 张邦庆    时间: 2011-10-20 22:49
企业级应用的多,桌面应用的少,如果系统具有多任务性,那就考虑用多线程,在聊天系统或实现才c\s构架这样的系统,可以为每个客户端创建一个线程,

当多个线程同时访问同一资源时,为了防止发生线程安全问题,就需要用到锁




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2