您的位置:首页 > 编程语言 > Java开发

Java线程同步锁解决共享数据安全

2011-03-31 01:20 465 查看
Java线程同步锁就帮助我们处置了这个难缠的问题。 下面我们就来学些有关着房门的问题,   我们可以在计算机上运转各种计算机软件程序。 线程(Thread)是一份独立运转的程序, 有自己专用的运转栈。 比如, 数据库等。 我们需求引入线程“同步”机制, 即各位线程之间要有个先来后到, 不能一窝蜂挤上去抢作一团。 我也不明白为什么要用这个很容易惹起误解的词。 咱们也就只好这么将就。 Java线程同步锁的真实意思和字面意思恰恰相反。 线程同步的真实意思, 一个一个对共享资源进行操作, 而不是同时进行操作。 关于线程同步, 需求牢牢记住的第一点是:线程同步就是线程排队。 同步就是排队。 线程同步的目的就是防止线程“同步”执行。   关于线程同步, 只要共享资源的读写访问才需求同步。 假设不是共享资源, 那么就根本没有同步的必要。   关于线程同步, 需求牢牢记住的第三点是, 假设共享的资源是固定不变的, 那么就相当于“常量”, 线程同时读取常量也不需求同步。 至多一个Java线程同步锁修改共享资源, 也有能够是不同的代码;无论能否执行同一份代码, 只要这些线程的代码访问同一份可变的共享资源,   为了加深了解, 他们的工作内容是相反的, 都是遵照如下的步骤:  (1)到市场上去,   这两团体的工作内容虽然一样, 但是他们绝对不会购买到同一件样品, 他们之间没有任何共享资源。 所以, 他们可以各自进行自己的工作, 互不干扰。 布置自己的工作方案。   这两个推销员有能够同时走到公告栏的前面, 同时观看公告栏上的信息。 这一点问题都没有。 因为公告栏是只读的, 也走到了公告栏前面, 两个推销员这个时候, 恰恰也到了。 这两个推销员就必须等候行政人员完成修改之后, 才干观看修改后的信息。   假设行政人员抵达的时候, 两个推销员曾经在观看公告栏了。 才干够写上新的信息。   上述这两种状况, 行政人员和推销员对公告栏的访问就需求进行同步。 而且我们可以看到, 行政人员的工作流程和推销员的工作流程(执行代码)完全不同, 所以他们之间需求同步。 下面我们就来看如何才干线程同步。   线程同步的基本实现思路还是比拟容易了解的。 我们可以给共享资源加一把锁, 哪个线程获取了这把钥匙, 才有权利访问该共享资源。   生活中, 我们也能够会遇到这样的例子。 每个储物箱都有一把锁, 人们可以运用那些带有钥匙的储物箱, 把储物箱锁上, 然后把钥匙拿走。 其别人不能再访问这个储物箱。 (当然, 真实的储物箱钥匙是可以被人拿走复制的, 所以不要把宝贵物品放在超市的储物箱外面。 于是很多超市都采用了电子密码锁。 )  Java线程同步锁这个模型看起来很直观。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐