A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘江华 黑马帝   /  2011-10-15 20:59  /  4380 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

线程一般是应用在哪些地方?线程中的锁又是怎么回事。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

6 个回复

倒序浏览
同步锁(Lock):
    同步锁是JDK1.5之后才有的,如:
private final ReentrantLock lock = new ReentrantLock ();
public void test(){
    lock.lock();
    //.....
}

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
敖东 黑马帝 2011-10-15 21:35:19
藤椅
如果有多个功能要同时实现,就需要考虑到使用线程,这样可以提高效率的。

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

锁是控制多个线程对共享资源进行访问的工具。通常,锁提供了对共享资源的独占访问。一次只能有一个线程获得锁,对共享资源的所有访问都需要首先获得锁。

评分

参与人数 1技术分 +2 收起 理由
admin + 2

查看全部评分

回复 使用道具 举报
多个线程共享一个数据才会出现锁,让多个线程都在锁外面,一次进一个锁,保证了安全性

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

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

评分

参与人数 1技术分 +2 收起 理由
admin + 2

查看全部评分

回复 使用道具 举报
张邦庆 黑马帝 2011-10-20 22:49:31
7#
企业级应用的多,桌面应用的少,如果系统具有多任务性,那就考虑用多线程,在聊天系统或实现才c\s构架这样的系统,可以为每个客户端创建一个线程,

当多个线程同时访问同一资源时,为了防止发生线程安全问题,就需要用到锁
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马