Java单线程CPU使用和多线程CPU使用(Java Single Thread CPU Use and Multithread CPU Use)
我一直在编写矩阵乘法的应用程序。
我完成了它并观察资源监视器进行比较。
首先
- 3000x3000矩阵成倍增加。
- 单线程比多线程慢
- 当我检查Windows资源监视器时,我发现多线程应用程序的线程多于单线程。 我检查了“javaw.exe”,即使我编写单线程应用程序,它也有比一个更多的线程。 那不是关于我的。 这是关于“javaw.exe”本身。 但长话短说,单线程的javaw显示 - 例如 - 16个线程。 多线程显示 - 例如 - 24。
- 当多线程应用程序工作时,CPU使用几乎是100%。 大多数使用属于“javaw.exe”。 但在单线程应用程序中,使用率约为30-35%
我有一个i5 CPU。 双核。 4核心逻辑。
当我检查Windows资源监视器时,对于多线程应用程序,CPU 0-1-2-3的使用率几乎是100%。
但在单线程应用程序中,CPU 0-1-2-3仍在使用。 大约相同的百分比,但甚至不接近100%。
这是我的问题。 当我执行单线程应用程序时,谁正在使用其他核心? 当然,任何其他进程都可以使用它们。 甚至“javaw.exe”本身(我告诉自己,它是多线程的)。 但JVM是否有可能将我的单线程进程作为多线程执行?
I've been writing an application for matrix multiplication.
I've got it done and watched resource monitor for comparison.
First of all
- 3000x3000 matrixes multiplied.
- Single threaded was slower than multi threaded
- When I check Windows resource monitor, I see that multithreading app has more threads than single threaded. I checked "javaw.exe" and even if I write single threaded app, it has more threads than one. That's not about me. That's about "javaw.exe" itself. But long story short, javaw with single thread showed - for example - 16 threads. Multi threaded showed - for example - 24.
- While multi threaded app working, CPU use was almost 100%. Most of use belong to "javaw.exe". But in single threaded app, the use was around 30-35%
I've a i5 CPU. Dual core. 4 cores logical.
When I check Windows resource monitor, for multi thread app, CPU 0-1-2-3 use was almost 100%, again.
But in single thread app, CPU 0-1-2-3 was still using. Around same percentages, but not even close to 100%.
Here goes my question. When I was executing single threaded app, who was using the other cores? Of course any other process can use them. Or even "javaw.exe" itself (I told myself, it was multithreaded). But is there any possibility that JVM executes my single threaded process as multi threaded?
原文:https://stackoverflow.com/questions/37236377
最满意答案
您可以编写自己的vba函数并在查询中使用此函数。 它确实需要改变。 所以查询看起来像
UPDATE SomeTable SET SomeField = ResolveCodes(SomeField)
ResolveCodes将是你的函数,如下所示:
Public Function ResolveCodes(SomeField as String) as String Begin ' Some logic goes here: ' - split codes by ':' ' - resolve each code with DLookup or other OpenRecordset-based code ... End Function
You can write your own vba function and use this function in query. It will do require changes. So the query will look like
UPDATE SomeTable SET SomeField = ResolveCodes(SomeField)
where ResolveCodes will be your function something like this:
Public Function ResolveCodes(SomeField as String) as String Begin ' Some logic goes here: ' - split codes by ':' ' - resolve each code with DLookup or other OpenRecordset-based code ... End Function
相关问答
更多-
您可以编写自己的vba函数并在查询中使用此函数。 它确实需要改变。 所以查询看起来像 UPDATE SomeTable SET SomeField = ResolveCodes(SomeField) ResolveCodes将是你的函数,如下所示: Public Function ResolveCodes(SomeField as String) as String Begin ' Some logic goes here: ' - split codes by ':' ' - resolve each ...
-
主键必须是唯一的。 所以你不能将一个记录更改为与现有记录具有相同的PK 例如,如果您从下面的SQL中获取任何记录,则无法完成要执行的更新。 您需要首先进行其他更改或删除记录或删除PK SELECT SOURCE.delta, SOURCE.vid, TARGET.delta, TARGET.vid FROM content_field_table SOURCE INNER JOIN content_field_table TARGET ...
-
您可以向WHERE子句添加一个条件,该条件检查meta_value字段是否与您想要替换的meta_value完全相同,在本例中为'Mark' : UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'Mark', 'Tom') WHERE meta_key LIKE 'employee' AND meta_value = 'Mark' 请注意,我删除了包含表和字段名称的单引号,因为它们不属于那里,至少不在原始MySQL查询中。 更新 ...
-
尝试 UPDATE ifns_code INNER JOIN ( SELECT name n, REPLACE(fio,'**!!!**','**???**') f FROM ifns_code ) t ON n=name SET ifns_code.fio=REPLACE(REPLACE(f,'**!!!**',code),'**???**',name) 这将做两个替换操作,首先是三个字母的代码(我的名字我不知道,我已经使用code作为名称),然后是name 。 如果你想让最后的 ...
-
要从文本值的开头删除字符,请使用substr()函数 : UPDATE usr_wines SET Name = substr(Name, 2) WHERE Name LIKE ',%'; 使用动态字符串也可以这样做: UPDATE usr_wines SET Name = substr(Name, length(Winery) + 1) WHERE Name LIKE Winery || '%' AND Name != Winery; To remove a character from the ...
-
看看你的数据,你可以使用基于title和category_lookup的内连接 update not_categorized inner join title_match on not_categorized.category_lookup = title_match.title set not_categorized.category1 = title_match.category1 Looking to your data you could use an inner join base ...
-
您可以同时选择和更新记录。 没问题(假设DOCO是Table1的主键): Table1.Select PO cProcessedFlag = BC cProcessedFlag Table1.Fetch Next VA mnOrderNumber[DOCO] <- BC mnOrderNumber[DOCO] While SV File_IO_Status is equal to CO SUCCESS ... Table1.Update VA mnOrder ...
-
尝试这个: SELECT t.task_type, t.task_group AS tgid, IF (t.task_type = 2, g.name, '') AS group_name FROM tasks t LEFT JOIN task_group g ON t.task_group = g.keyid WHERE t.keyid = 3 ; 如果type = 2,则此查询应返回组名,否则返回空字符串。 Try this: SELECT t.task_type, t.tas ...
-
尝试刷新表单。 Me.Refresh 顺便说一句,你真的应该摆脱使用绑定表单的习惯,因为你必须最终克服一堆东西(比如这个)才能让它正常工作,以及撤销功能(取消新的输入)记录)充其量不稳定。 通过解除对表单的绑定,您可以更好地控制它对计算字段的反应,并且快速转储新数据条目。 Try refreshing the form. Me.Refresh As an aside, you really should get out of the habit of using bound forms, because ...
-
Apache Solr搜索:返回查询是字段一部分的结果(Apache Solr searching: return results where query is part of a field)[2023-02-25]
要获得所有“大括号”匹配,请使用NGramFilterFactory而不是EdgeNGramFilterFactory 。 我不知道有任何直接推进完全匹配的方法,但是从这个邮件列表帖子中,您可以创建一个只有简单标记的复制字段,并且应用大多数字分隔来获取确切的单词,然后大量提高领域。 这看起来像是这样的:相关文章
更多- Java 多线程编程
- 《CPU源代码分析与芯片设计及Linux移植》扫描版[PDF]
- struts+mysql+hibernate+dwr 做的网站,cpu占用好高啊...为什么,急啊,高手来啊?
- storm0.9-single
- 线程报错 thread
- Callable接口实现Java多线程
- 多线程问题
- 一步一步掌握java的线程机制(二)----Thread的生命周期
- java线程状态详解(6种)
- 引入thread后socket接受不了报文了
最新问答
更多- 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
- 如何通过引用返回对象?(How is returning an object by reference possible?)
- 矩阵如何存储在内存中?(How are matrices stored in memory?)
- 每个请求的Java新会话?(Java New Session For Each Request?)
- css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
- 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
- xcode语法颜色编码解释?(xcode syntax color coding explained?)
- 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
- 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
- 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
- 西安哪有PLC可控制编程的培训
- 在Entity Framework中选择基类(Select base class in Entity Framework)
- 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
- 电脑二级VF有什么用
- Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
- 金华英语角.
- 手机软件如何制作
- 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
- 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
- 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
- Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
- 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
- python的访问器方法有哪些
- DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
- 在Ruby中对组合进行排序(Sorting a combination in Ruby)
- 网站开发的流程?
- 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
- 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
- 透明度错误IE11(Transparency bug IE11)
- linux的基本操作命令。。。