小编Dav*_*ann的帖子

我应该在Java中使用哪个并发队列实现?

来自JavaDocs:

  • 一的ConcurrentLinkedQueue是当许多线程共享访问一个共同的集合一个合适的选择.此队列不允许null元素.
  • ArrayBlockingQueue是一个经典的"有界缓冲区",其中固定大小的数组包含由生产者插入并由消费者提取的元素.此类支持用于排序等待生产者和消费者线程的可选公平策略
  • LinkedBlockingQueue通常具有比基于阵列的队列更高的吞吐量,但在大多数并发应用程序中具有较低的可预测性能.

我有两个场景,一个需要队列支持许多生产者(使用它的线程)与一个消费者,另一个是另一种方式.

我不明白使用哪种实现.有人可以解释一下这些差异是什么吗?

此外,什么是"可选的公平政策" ArrayBlockingQueue?

java queue concurrency multithreading

123
推荐指数
3
解决办法
10万
查看次数

为什么不建议将Eclipse项目文件夹作为Git存储库?

当将项目作为git共享并尝试将Eclipse项目文件夹作为git存储库时,Eclipse表示不建议这样做并且它应该在Eclipse工作区之外.

这是为什么?

eclipse git egit jgit

25
推荐指数
2
解决办法
1万
查看次数

如何使用浏览器(chrome/firefox)HTML/CSS/JS渲染引擎生成PDF?

有很好的项目可以从html/css/js文件生成pdf

  1. http://wkhtmltopdf.org/(开源)
  2. https://code.google.com/p/flying-saucer/(开源)
  3. http://cssbox.sourceforge.net/(不一定是直接的pdf生成)
  4. http://phantomjs.org/(开源允许pdf输出)
  5. http://www.princexml.com/(商业但是最好的那个)
  6. https://thepdfapi.com/铬修改从html吐出pdf

我想以编程方式控制chrome或firefox浏览器(因为它们都是跨平台的),以使它们加载网页,运行脚本并设置页面样式并生成用于打印的pdf文件.

但是我如何开始以自动方式控制浏览器,以便我可以做类似的事情

render-to-pdf file-to-render.html out.pdf

我可以通过浏览页面然后将其打印到pdf手动轻松完成这项工作,并在pdf文件上获得准确的,100%规范的html/css/js页面.甚至可以在浏览器中的pdf配置选项中省略url标头.但同样,我如何开始尝试自动化这个过程?

我想在服务器端自动化,打开浏览器,导航到页面,并使用浏览器呈现的页面生成pdf.

我做了很多研究,我不知道如何提出正确的问题.我想以编程方式控制浏览器,可能就像selenium一样,但我将网页导出为PDF(因此使用浏览器的渲染功能来生成良好的pdf)

html java pdf pdf-generation google-chrome

22
推荐指数
2
解决办法
1万
查看次数

如何浏览Java类资源?

我知道我们可以这样做:

Class.class.getResourceAsStream("/com/youcompany/yourapp/module/someresource.conf")
Run Code Online (Sandbox Code Playgroud)

读取我们的jar文件中打包的文件.

我已经google了很多,我肯定没有使用正确的条款; 我想要做的是列出可用的资源,如下所示:

Class.class.listResources("/com/yourcompany/yourapp")
Run Code Online (Sandbox Code Playgroud)

这应该返回包内的资源列表 com.yourcompany.yourapp.*

那可能吗?关于如何做到这一点的任何想法,以防它不能像我展示的那样轻松完成?

注意:我知道可以知道罐子的位置,然后打开它并检查其内容以实现它.但是,我不能在我现在工作的环境中这样做.

java resources classpath

16
推荐指数
1
解决办法
1万
查看次数

使用BlockingQueue时是否需要额外的同步?

我有一个简单的bean @Entity Message.java,它有一些正常的属性.该对象的生命周期如下

消息的实例化发生在线程A上,然后它被排入阻塞队列

池中的另一个线程获取该对象并使用它执行一些操作并更改Message的状态,之后,对象再次进入blockingQueue.重复该步骤直到条件使其停止.每次对象获取读/写时都可能来自不同的线程,但保证一次只有一个线程可以读/写.

鉴于这种情况,我是否需要同步getter/setter?也许这些属性会变化?或者我可以不同步而离开?

谢谢,希望我能澄清一下我在这里有什么.

java multithreading synchronization

16
推荐指数
1
解决办法
1万
查看次数

在Vaadin 7中添加javascript/Jquery和客户端代码

我有3个问题:

  1. Vaadin中的每个动作都会调用服务器.有没有办法避免每次操作调用服务器?比如在客户端有代码用于多次使用的特定操作?就像在CSValidation插件中一样.

  2. 我想知道如何在Vaadin 7中添加Javascript/JQuery.在Vaadin 6中看起来很容易.但是,我无法让它在Vaadin 7中运行.我希望他们现在能让它更容易.谁能告诉我一些关于此的例子.如果它是JQuery,它将帮助我很多.

  3. 而且也会

    .Javascript.getCurrent()执行( "");

'执行javascript'或'添加指定的脚本'到代码中.这有助于我解决第二个问题吗?

javascript java integration jquery vaadin

14
推荐指数
1
解决办法
1万
查看次数

如何在浏览器中播放.ts文件(视频/ MP2T媒体类型)?

我有一个.m3u文件,指向几个.ts文件(全部在akamai).

因为我们向akamai提供实时流,所以他们将它们转换为10个中的每个.ts文件.我看到m3u文件很容易理解,但我找不到这些文件的基于浏览器(flash,html5或本机插件)的播放器.

如果我向vlc提供m3u文件的链接,vlc会一个接一个地播放所有.ts文件,就像它只有一个大文件一样.我想使用flash或类似的东西能够在浏览器中播放,就像vlc可以播放那些.m3u文件一样.

这可能吗 ?

browser video html5

11
推荐指数
1
解决办法
3万
查看次数

如何在Java EE和Spring Boot中热重新加载属性?

我想到了许多内部解决方案.就像在数据库中拥有属性并每隔N秒轮询它一样.然后还要检查.properties文件的时间戳修改并重新加载它.

但我正在研究Java EE标准和Spring引导文档,我似乎无法找到一些最好的方法.

我需要我的应用程序来读取属性文件(或环境变量或数据库参数),然后才能重新读取它们.生产中使用的最佳实践是什么?

一个正确的答案至少可以解决一个场景(Spring Boot或Java EE)并提供一个关于如何使其在另一个场景上工作的概念线索

spring properties java-ee spring-boot

11
推荐指数
3
解决办法
1万
查看次数

JDBC基本概念,池和线程

我总是在单线程环境中使用JavaSE中的JDBC.但是现在我需要使用连接池并让许多线程与数据库(MSSQL和Oracle)进行交互,我很难尝试制作它,因为我似乎缺少api的一些基本功能.

连接和记录a后的AFAIK Connection表示与数据库的picalical tcp/ip连接.它创建的Statement(s)可以被视为与数据库之间的SQL交互Connection.

  • 交易和回滚在哪里?它是在水平Connection还是Statement水平.
  • 'one' Connection创建N语句并将其赋予不同的线程以便让每个人拥有它的使用是否安全Statement?

如果没有,并在配置池后像这样:

OracleDataSource ods = new OracleDataSource(); 
ods.setURL("jdbc:oracle:thin:@tnsentryname");
ods.setUser("u");
ods.setPassword("p");
Run Code Online (Sandbox Code Playgroud)
  • 顺便说一句,我在哪里设置连接池大小?

  • 这是我在每个线程中要做的,以便正确使用连接?

// thead run方法

Connection conn = ods.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("the sql");
// do what I need to do with rs
rs.close();
int updateStatus = stmt.executeUpdate("the update");
stmt.close();
conn.close();
Run Code Online (Sandbox Code Playgroud)

//线程运行方法结束

  • 如果池的任何物理连接以某种方式崩溃或断开连接,池是否会自动尝试重新连接并在池中注入新连接,以便后续的pool.getConnection()只获得健康连接?

非常感谢,请原谅我的坏英语.

java oracle multithreading connection-pooling jdbc

8
推荐指数
2
解决办法
9462
查看次数

如何制作一个在Windows中无法杀死的程序?

我们正在为我们公司内部使用制作一个Jabber客户端,不知怎的,我们需要抓住用户试图杀死程序以实际重启它或者让用户无法杀死客户端的那一刻.

这可能吗?

我们的Jabber客户端将使用C#编写.

我将如何实现这一目标?

.net c# windows process

6
推荐指数
6
解决办法
6627
查看次数