欧歌全站仪的使用方法使用方法

让天下没有难学的技术
基本线程同步(二)同步方法
基本线程同步(二)同步方法
声明:本文是《 》的第二章,作者: Javier Fernández González
译者:许巧辉 校对:方腾飞
在这个指南中,我们将学习在Java中如何使用一个最基本的同步方法,即使用 synchronized关键字来控制并发访问方法。只有一个执行线程将会访问一个对象中被synchronized关键字声明的方法。如果另一个线程试图访问同一个对象中任何被synchronized关键字声明的方法,它将被暂停,直到第一个线程结束方法的执行。
换句话说,每个方法声明为synchronized关键字是一个临界区,Java只允许一个对象执行其中的一个临界区。
静态方法有不同的行为。只有一个执行线程访问被synchronized关键字声明的静态方法,但另一个线程可以访问该类的一个对象中的其他非静态的方法。 你必须非常小心这一点,因为两个线程可以访问两个不同的同步方法,如果其中一个是静态的而另一个不是。如果这两种方法改变相同的数据,你将会有数据不一致 的错误。
为了学习这个概念,我们将实现一个有两个线程访问共同对象的示例。我们将有一个银行帐户和两个线程:其中一个线程将钱转移到帐户而另一个线程将从账户中扣款。在没有同步方法,我们可能得到不正确的结果。同步机制保证了账户的正确。
这个指南的例子使用Eclipse IDE实现。如果你使用Eclipse或其他IDE,如NetBeans,打开它并创建一个新的Java项目。
如何做…
按以下步骤来实现的这个例子:
1.创建一个Account类来模拟我们的银行账户。它只有一个double类型的属性,名为balance。
public class Account {
2.实现setBalance()和getBalance()方法来写和读balance属性的值。
public double getBalance() {
public void setBalance(double balance) {
this.balance =
3.实现一个addAmount()方法,用来根据传入的参数增加balance的值。由于应该只有一个线程能改变balance的值,所以使用synchronized关键字将这个方法转换成临界区。
public synchronized void addAmount(double amount) {
double tmp=
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
4.实现一个subtractAmount()方法,用来根据传入的参数减少balance的值。由于应该只有一个线程能改变balance的值,所以使用synchronized关键字将这个方法转换成临界区。
public synchronized void subtractAmount(double amount) {
double tmp=
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
5.实现一个类来模拟ATM,它调用subtractAmount()方法来减少账户上的余额(balance值)。这个类必须实现Runnable接口,作为一个线程执行。
public class Bank implements Runnable {
6.在这个类中,添加一个Account对象。实现构造器用来初始化account的值。
public Bank(Account account) {
this.account=
7.实现run()方法。它将调用100次account对象上的subtractAmount()方法,用来减少余额(balance值)。
public void run() {
for (int i=0; i&100; i++){
account.subtractAmount(1000);
8.实现一个类来模拟公司,它调用addAmount()方法来增加账户上的余额(balance值)。这个类必须实现Runnable接口,作为一个线程执行。
public class Company implements Runnable {
9.在这个类中,添加一个Account对象。实现构造器用来初始化account的值。
public Company(Account account) {
this.account=
10.实现run()方法。它将调用100次account对象上的addAmount()方法,用来增加余额(balance值)。
public void run() {
for (int i=0; i&100; i++){
account.addAmount(1000);
11.通过创建一个类,类名为main,包含main()方法来实现应用程序的主类。
public class Main {
public static void main(String[] args) {
12.创建一个Account对象,并且初始化balance值为1000。
Account account=new Account();
account.setBalance(1000);
13.创建一个Company对象,并且用一个线程来运行它。
Company company=new Company(account);
Thread companyThread=new Thread(company);
14.创建一个Bank对象,并且用一个线程来运行它。
Bank bank=new Bank(account);
Thread bankThread=new Thread(bank);
15.在控制台打印balance初始值。
System.out.printf(&Account : Initial Balance: %f\n&,account.getBalance());
启动这些线程。
companyThread.start();
bankThread.start();
16.等待两个使用join()方法结束的线程,并且在控制台打印账户的最终余额(balance值)。
companyThread.join();
bankThread.join();
System.out.printf(&Account : Final Balance: %f\n&,account.getBalance());
} catch (InterruptedException e) {
e.printStackTrace();
它是如何工作的…
在 这个指南中,你已经开发了一个增加和减少模拟银行账户的类的余额的应用程序。在这个程序中,每次都调用100次addAmount()方法来增加1000 的余额和调用100次subtractAmount()方法来减少1000的余额。你应该期望最终的余额和初始的余额是相等的。你试图促使一个错误情况使 用tmp变量来存储账户余额,所以你读取帐户余额,你增加临时变量的值,然后你再次设置账户的余额值。另外,你通过使用Thread类的sleep()方 法引入一个小延迟,让执行该方法的线程睡眠10毫秒,所以,如果另一个线程执行该方法,它可以修改账户的余额来引发一个错误。这是 synchronized关键字机制,避免这些错误。
如果你想看到并发访问共享数据的问题,那么就删除addAmount()和 subtractAmount()方法的synchronized关键字,然后运行该程序。在没有synchronized关键字的情况下,当一个线程在 睡眠后再读取账户的余额,另一个方法将读取该账户的余额。所以这两个方法将修改相同的余额并且其中一个操作不会反映在最终的结果。
正如你所看到下面的截图,你会获得不一致的结果:
如果你一直运行这个程序,你会得到不同的结果。在JVM中,线程的执行顺序是没有保证的。所以每次你执行时,线程会在一个不同的顺序下读和修改账户的余额,所以最后的结果将是不同的。
现在,正如你前面所学的,添加synchronized关键字,再次运行这个程序。正如你所看到下面的截图,你获得期望的结果。如果你一直运行这个程序,你会得到相同的结果。参考下面的截图:
使用synchronized关键字,在并发应用程序中,我们保证了正确地访问共享数据。
如我们在介绍中提到的这个指南,只有一个线程能访问一个对象的声明为synchronized关键字的方法。如果一个线程A正在执行一个 synchronized方法,而线程B想要执行同个实例对象的synchronized方法,它将阻塞,直到线程A执行完。但是如果线程B访问相同类的不同实例对象,它们都不会被阻塞。
不止这些…
synchronized关键字不利于应用程序的性能,所以你必须仅在修改共享数据的并发环境下的方法上使用它。如果你有多个线程正在调用一个synchronized方法,在同一时刻只有一个线程执行它,而其他的线程将会等 待。如果这个操作没有使用synchronized关键字,所有线程可以在同一时刻执行这个操作,减少总的执行时间。如果你知道一个方法将不会被多个线程 调用,请不要使用synchronized关键字。
你可以使用递归调用synchronized方法。当线程访问一个对象的synchronized方法,你可以调用该对象的其他synchronized方法,包括正在执行的方法。它将不会再次访问synchronized方法。
我 们可以使用synchronized关键字来保护访问的代码块,替换在整个方法上使用synchronized关键字。我们应该使用 synchronized关键字以这样的方式来保护访问的共享数据,其余的操作留出此代码块,这将会获得更好的应用程序性能。这个目标就是让临界区(在同 一时刻可以被多个线程访问的代码块)尽可能短。我们已经使用了synchronized关键字来保护访问指令,将不使用共享数据的长操作留出此代码块。当 你以这个方式使用synchronized关键字,你必须通过一个对象引用作为参数。只有一个线程可以访问那个对象的synchronized代码(代码 块或方法)。通常,我们将使用this关键字引用执行该方法的对象。
synchronized (this) {
// Java code
原创文章,转载请注明: 转载自
本文链接地址:
许巧辉,目前在Letv练级,平时喜欢看书,关注Java并发
Latest posts by Snway ()
- 2014 年 5 月 30 日
- 2014 年 5 月 25 日
- 2014 年 2 月 28 日
Related posts:
(1 votes, average: 5.00 out of 5)
Loading...【图】- 学而时习之,不亦乐乎!欧歌现在可以免费练钢琴啦! - 上海徐汇龙华艺术培训 - 百姓网
更新提示:发现新版本浏览器,一样简单易用,速度提升30%不再显示&&关注百姓微信公众号,尽享快捷刷新、信息推送、抽奖活动等众多微信功能您只需要:1 &用微信“扫一扫”右边的二维码2 &在微信中“关注”我们&|&||||||学而时习之,不亦乐乎!欧歌现在可以免费练钢琴啦!&提示信息设置为“搞定了!”状态后,其他用户将无法查看您的联系方式。您确认搞定了这条信息吗?提示重新发布后可使用“刷新”将发布时间更新为最新时间,并将信息排到第一页。&&5月23日 13:51 &...次浏览 &信息编号: &1391856****号码归属地:上海&&百姓网号码保护功能介绍&&拨打百姓400转呼电话绝不收取您任何额外费用,该信息发布人仍能看到您的来电号码。联系时,请一定说明在百姓网看到的,谢谢!见面最安全,发现问题请举报。培训类型:&课程学费:1元学校名称:欧歌钢琴城上海徐汇店联系人:吴经理地区:&-&&-&龙华西路323号乐课力教育城A座3楼&欧歌钢琴城上海徐汇店三周年店庆,现推出免费练习钢琴&&的服务。不论您是成人练习还是少儿。一律免费。
活动时间:日至日。营业时间:早上九点至下午六点。
练琴时间:每周一至周五上午十点至下午五点(周末不提供免费练琴服务)。每人每次免费练琴时间最多为90分钟。每人每周最多两次练习时间。如有特殊情况预约后不能来的,需提前电话通知,否则取消练琴资格。
注意:练琴需至少提前一天和吴经理电话预约。
欧歌钢琴城隶属于上海美泽嘉乐欧歌钢琴有限公司,欧歌钢琴城是中国最大的中高端全国连锁型钢琴销售企业。与国内大多数琴行不同,欧歌钢琴城致力于为中国的钢琴用户提供符合国际钢琴品质标准的中高端钢琴产品和相关的钢琴知识普及,并把在欧美等发达国家有至高地位的钢琴品牌引进国内,使消费者在纷杂的钢琴市场中拨开迷雾,最终选到真正优质的钢琴。来欧歌钢琴城选择钢琴,欧歌钢琴城在全国各地的百余位专业钢琴顾问们会尽全力帮您成为半个钢琴专家。
目前欧歌钢琴城在全国几十个城市均设有钢琴专卖店,计划到2017年在全国开设至70家中高端钢琴专卖店,来满足国内广大中高端钢琴用户们的需求,欧歌钢琴城目前已成为国内外多个知名钢琴厂商在中国地区的销量冠、亚军。
现在,我们客户遍布中国北京、上海、天津、山东、河南、河北、山西、广东、福建、江西、美国、加拿大、韩国、日本、马来西亚、新加坡、俄罗斯,我们将会继续扩大规模,不断努力提升服务让顾客更加满意,不断引进更优质的钢琴产品,来服务于社会,争取在5年内实现累计销售20万架钢琴,最终服务于几百万个家庭及单位。
我们的理念
好人才、好服务、卖名琴、您满意。
欧歌钢琴城徐汇店欢迎任何喜欢钢琴的朋友们前来做客!!1元左右 钢琴 信息1元&/&钢琴
反馈建议描述:请填写描述手机号:请填写手机号请填写手机号恩平市欧歌电子有限公司
您现在的位置: >
无线话筒的使用技巧
&随着无线话筒越来越多的使用在不同的场合, 无论是拥有多么先进的无线发射接收技术的无线话筒, 都会因为使用场合的一些特殊性而导致信号接收不稳定的现象出现.下面我主要根据这几年代理无线话筒所碰到的这方面的问题以及一些解决方法与大家作一个探讨.
一 无线话筒的发射和接收方式概述
首先让我们来大致的了解一下无线话筒的发射和接收方式. 我们常使用的无线话筒大部分都是工作在VHF频段或UHF频段, VHF和UHF频段的无线电信号统称射频信号(RF),UHF频段更多利用的是直接辐射的电磁波,VHF频段除利用直接辐射的电磁波外,还利用了一部分折射和绕射的电磁波,因此在同样的发射功率和传播条件下,传输距离可更远. 随着VHF技术的不断被掌握, 应用的范围也就越来越广, 因此在我们日常生活的空间环境里会时常充斥着很多VHF频段的电磁波, 常用的对讲机一般就工作在VHF频段, 所以如果我们使用VHF频段的无线话筒, 那被干扰的机会就会大很多. 而UHF的技术目前还不被很多厂家所掌握, 也因其电路的成本要比VHF贵很多, 所以被应用的范围就没有VHF那么广, 使用UHF无线话筒受干扰的机会就会小很多, 鉴于这一原因大部分高档的无线话筒都会采用UHF技术. UHF的传播特性更多的是利用直接辐射来传输, 当然它也具有一定的穿透能力, 但是如果遇到具有电磁波吸收特性的物体(例如金属类物质), 它就会无能为力了.
我们可以把无线话筒的发射天线当成是一个向四周发射光线的发光体& 而无线话筒的接收天线则可当成是光线的一个感应器,当无线话筒发射UHF信号时他的发射功率一般为10mW(依照国际电磁法规), UHF信号的传输距离的特性就好像我们的手电一样, 随着距离的增加而越来越弱, 因此无线话筒就存在一个发射距离的问题, 而我们的无线话筒接收机则好比一个感应器, 作为一个接收系统, 就必须有一个接收的感应值-----就是我们常说的接收灵敏度(SQUELCH),它就好像我们在专业音响工程中常用的噪声门的阈值开关一样, 只有功率大于这个阈值的信号才可以进入到接收机的解调电路里来, 由此可知通过调整灵敏度的大小也可以调节接收距离的长短. 但是调节灵敏度也可能带来一些弊端, 当灵敏度太高的时候, 就好像我们家里的窗户开的太大的时候一样, 不但新鲜的空气进来了, 往往蚊子和苍蝇也会容易的进来, 也就是说灵敏度太高的时候很容易会被一些外面的微弱杂讯所干扰到(例如:手机, 高频对讲机), 反之则会影响接收效果. 我们在使用灵敏度调节功能的时候, 不要贪图过大的接收距离, 而是要看菜吃饭, 量体裁衣, 依据实际情况而定.说到这里大家对UHF无线的发射和接收应该有一定的了解, 下面我们就来探讨一下几种特殊情况下的无线话筒稳定接收的解决方案.
几种特殊情况下的无线话筒稳定接收的解决方案
1, 在演出时人少的时候话筒没有问题, 人多的时候就出现断频
我们经常做演出的朋友就会碰到这样的问题, 在排练的过程中话筒一直都用得好好的, 但一到观众来了, 正式演出的关键时候就出现断频的现象. 在上面我们讲到UHF频段的传播一般都是直接辐射为主, 还有一部分也能通过穿透障碍物和折射到达接收机, 但当我们在演出时, 特别是在户外演出时, 四周都是空旷的场地, 因此折射就不可能存在. 而正式演出时, 观众必然会很多, 如果主控台是放在观众的黄金听音位置的话, 那接收机的天线就有可能会被观众所阻挡. 虽然我们的UHF信号可以穿透一部分观众的身体到达接收天线, 但信号穿透的物体越多,衰减也就必然会越大, 到达天线时它的功率可能已经不足以打开接收机的灵敏度&闸门&了, 这就造成了断频的现象. 解决的方法有以下几种:
1.1 如果是使用单套无线话筒时,并且此话筒有灵敏度调节功能
这时我们先将接收机的灵敏度调到最大, 如果还出现断频现象, 则可以把话筒放置于高于观众的地方(最好是放在舞台口); 或者把话筒的天线延长到外面来,但这时我们需要一个辅助的设备----天线放大器, 因为在延长天线电缆的时候会带来一些增益的损失, 而加了天线放大器则可以弥补同轴电缆所带来的增益损失
1.2 如果是使用多套无线话筒时
此时我们就不可能把那么多的无线话筒摆放在舞台上了, 而且如果要拉很多条天线在控台的上方好像也不是很现实的事情. 不过最终我们还是有办法解决这类问题的, 我们可以加上另外一种设备----无线话筒天线分配器, 这一设备可以通过内部的匹配电路让几套话筒共用一个天线, 然后再配合天线放大器,这时再找两支高一点的话筒支架把天线放大器支起来, 这样我们就解决了多套话筒同时使用时的稳定接收问题了.
2, 比较大的场合演出时, 由于话筒使用者移动的空间较大, 导致无线话筒的发射距离无法满足需要.
我们在体育场做大型的演唱会时, 常常要搭建很大的舞台, 并且还要搭建几层楼高的灯架, 所有这些都不利于无线话筒的使用. 众所周知, 无线话筒的标准发射功率为10mW, 由于在空气中传播以及一些物质的阻隔和吸收, 所以传播的距离是非常有限的, 再加上接收机的灵敏度设置的高低也会对接收距离有一定的影响. 一般的无线话筒的发射距离为: 50~120米的距离, 如果使用的环境有很强的电磁干扰或电磁屏蔽, 那发射的距离可能不会超过50米. 综上的原因, 无线话筒在大型演出时还是会接受很大的考验.但是如果通过天线分配器和天线放大器的配合使用则可以在很大程度上避免断讯的问题, 如果我们使用四套以内的无线话筒, 则只需要一台天线分配器和两个天线放大器, 组成一个组合. 只是我们要用同轴电缆把天线放大器拉到尽量靠近舞台边上去, 若是可以固定在舞台的灯架上那就再好不过了.
这种居高临下的天线安装方式, 可以保证发射的信号在绝大部分情况下不被遮挡, 从而也就保证了稳定的接收效果.利用这种方法我们还可以进行一些取舍,如果我们要保证较强的接收稳定性则两个天线放大器的距离尽可能的保持在50M~100M之间, 因为我们可以利用话筒的自动选讯功能& 欧歌suv自动波箱油怎么换
欧歌suv自动波箱油怎么换
胡少尉12345
四星认证车友会
易车爱心联盟达人
你好,建议去修理店进行更换, 希望我的答案能够对你有所帮助,请设置为最佳答案,谢啦!
青铜地区联盟
易车爱心联盟达人
需要在4S店更换的
需要专门设备抽油的
大苏坛欢迎你————详情点击图片进入苏坛
亲,您好!这个不建议您自己动手更换,安全起见还是去4s店处理吧!希望能帮到您,还请设为最佳答案!谢谢!
现在的社会,上厕所拿手机比拿手纸还重要
奔跑吧。。。OO
您好,建议去4s或者专业维修店处理。
易车爱心联盟达人
您好,这个建议去专业店操作。
我已阅读并同意《》
上一主题:
下一主题:
时长: 11:57原创
时长: 16:30原创
时长: 09:20原创
时长: 07:12}

我要回帖

更多关于 中海达全站仪使用方法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信