- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是读者写入者的一种实现,即许多读者可以读取,但在任何时候只有一个写入者可以写入。这是否按预期工作?
public class ReadersWriters extends Thread{
static int num_readers = 0;
static int writing = 0;
public void read_start() throws InterruptedException {
synchronized(this.getClass()) {
while(writing == 1) wait();
num_readers++;
}
}
public void read_end() {
synchronized(this.getClass()) {
if(--num_readers == 0) notifyAll();
}
}
public void write_start() throws InterruptedException{
synchronized(this.getClass()) {
while(num_readers > 0) wait();
writing = 1;
}
}
public void write_end() {
this.getClass().notifyAll();
}
}
此实现与声明每个方法有什么不同
public static synchronized read_start()
例如?
谢谢
最佳答案
否 - 您隐式调用 this.wait()
,尽管没有在 this
上同步,而是在类上同步。同样,您在 read_end
中调用 this.notifyAll()
。我的建议:
线程
- 您根本没有专门化线程。numReaders
、readEnd
(或者更好,endRead
) 等此
或类上进行同步(如果可以的话)。就我个人而言,我更喜欢有一个私有(private)的最终对象变量来锁定(并等待等)。这样您就知道只有您的代码可以在其上同步,这使得推理变得更容易。writing
设置为 0。有什么理由首先使用整数而不是 boolean
吗?当然,如果可能的话,最好使用框架中的类 - 但我希望您真正编写此内容是为了更好地理解线程。
关于java - Java 读者作者并发问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6089901/
我的英语很差,抱歉 这是我的结构: bookstore ---author(app1) ---book(app2) 或者在代码中: from django.db import models from
我有以下脚本从C:驱动器中检索特定文件类型,并将特定文件属性输出到定界的CSV文件。我还希望能够检索文件所有者和作者。很感谢任何形式的帮助。 # PowerShell script to list t
我们厌倦了掉毛。所以我们要使用 black在我们的项目中。不幸的是,它几乎改变了我们项目中的所有其他行,这会使我们丢失大部分作者信息。我们使用 annotate在 pycharm 或 git blam
我在我的asp.net网站中嵌入了java applet来进行数字签名,它在本地主机上工作,但是当发布它时,java applet在浏览器上运行但是未定义在java小程序上调用函数的java脚本代码
我无法找出一种有效的方法来建立表之间的关系。我想拥有一个包含书籍,作者,出版商和注册用户的数据库,并拥有他们的书架(阅读,当前阅读,想要阅读(或计划阅读))。我希望用户能够选择他们已经阅读,想要阅读或
我已经将我的 Git 作者作者姓名从“名尾 ”到“名尾 ” 这两个电子邮件地址与不同的 Github 帐户相关联,我正在将我所有的个人项目迁移到第二个。 我的问题是,我过去在某些私有(private)
我正在使用 svn2git 从现有的 SVN 存储库创建 Git 存储库。我把它全部下载了(所有 10 多个分支、10 多个标签、>4000 次提交)并在 Git 存储库中。现在,不幸的是,所有的作者
问题: 在 HTML 中,您可以使用 author 元标记(或 DC creator)来指示某人是信息(即内容)的作者。但是,我希望能够在元标记中将自己标记为 Web 应用程序开发人员。 大多数人(在
我确信在 git 中有一种方法可以做到这一点,但我的搜索结果是空的。有没有一种简单的方法可以从一次提交中获取消息、提交作者、提交日期和其他信息,并使用这些数据修改第二次提交,而无需复制实际的提交内容?
我已经设置了自己的私有(private) git 服务器,并且有一个 5 人的团队。我已经设置了他们的所有用户帐户,但是我如何防止由随机的奇怪帐户完成对远程的提交。因为我的一些团队也使用 github
我正在阅读这篇文章“http://lethain.com/introduction-to-architecting-systems-for-scale/”。最后,作者提到了平台层。我不明白这一层的范围
我需要在 Mac 上更改 PDF 文件的作者。我曾尝试使用 grep 和 sed 来完成此操作,但没有成功。 如果我在 Preview.app 中打开一个 PDF 文件并转到“工具”>“显示检查器”,
我正在运行此查询。它在 DBpedia ( http://dbpedia.org/sparql ) 上运行良好,但在我的 Java 代码中不起作用: PREFIX res: PREFIX dbped
我有一个用 C 语言模拟读者-作者问题的简单程序。要求用户输入作者数和读者数。然后创建随机数的编写器 - 线程和读取器 - 线程。项目的写入由全局变量 itemsCount 模拟 - 它代表新插入项目
我尝试在 wordpress 中设置一个作者页面。但是所有的作者页面都被重定向到主页。我用谷歌搜索,他们建议禁用插件,然后检查作者页面。我试了一下,发现 Yoast wordpress SEO plu
所以我从 SQL 背景转向 NoSQL。所以我知道我应该在这里“非规范化”。所以基本上我对我必须做的事情有一个简化的想法; 用户这些文件包含身份验证信息,可能是付款方式、用户名和各种详细信息 帖子这些
所以我已经成功地以 domenic 的身份提交了一个 GitHub 项目和 Domenic Denicola .这很烦人,尤其是对于生成摘要。 我知道 how to change the auth
在 PhpStorm 中,我很难在项目设置中设置默认的 git 作者: 我使用“Action finder”并搜索了设置,但我没有找到这个选项。 有谁知道我可以在哪里更改这个值,这样我就不必在每次提交
我一直在尝试使用 php5-ffmpeg 扩展来获取远程 mp3(和其他格式)元数据。 尽管我总是缺少标题、作者、评论、艺术家详细信息,但它正在工作。 我一直在网上搜索答案,但没有找到任何解决方案。
通常,将一些带有作者,版本和许可证信息的行添加到源文件的顶部被认为是一种好习惯。例如,Gnu GPL v3建议添加 Copyright (C) This program is free sof
我是一名优秀的程序员,十分优秀!