程序设计

专业和发烧友程序员的问答

14
ExecutorService,如何等待所有任务完成
等待所有任务ExecutorService完成的最简单方法是什么?我的任务主要是计算,因此我只想运行大量的作业-每个内核上一个。现在,我的设置如下所示: ExecutorService es = Executors.newFixedThreadPool(2); for (DataTable singleTable : uniquePhrases) { es.execute(new ComputeDTask(singleTable)); } try{ es.wait(); } catch (InterruptedException e){ e.printStackTrace(); } ComputeDTask实现可运行。这似乎是正确执行的任务,但代码崩溃上wait()用IllegalMonitorStateException。这很奇怪,因为我玩了一些玩具示例,而且看起来很奏效。 uniquePhrases包含数以万计的元素。我应该使用其他方法吗?我正在寻找尽可能简单的东西



15
多部分标识符无法绑定
我在SO上看到过类似的错误,但是我没有找到解决问题的方法。我有一个SQL查询,如: SELECT DISTINCT a.maxa , b.mahuyen , a.tenxa , b.tenhuyen , ISNULL(dkcd.tong, 0) AS tongdkcd FROM phuongxa a , quanhuyen b LEFT OUTER JOIN ( SELECT maxa , COUNT(*) AS tong FROM khaosat WHERE CONVERT(DATETIME, ngaylap, 103) BETWEEN 'Sep 1 2011' AND 'Sep 5 2011' GROUP BY maxa ) AS …

23
通用TryParse
我正在尝试创建一个通用扩展,该扩展使用'TryParse'检查字符串是否为给定类型: public static bool Is<T>(this string input) { T notUsed; return T.TryParse(input, out notUsed); } 由于无法解析符号“ TryParse”,因此无法编译 据我了解,“ TryParse”不是任何接口的一部分。 这有可能吗? 更新: 使用下面的答案,我想出了: public static bool Is<T>(this string input) { try { TypeDescriptor.GetConverter(typeof(T)).ConvertFromString(input); } catch { return false; } return true; } 它工作得很好,但是我认为以这种方式使用异常对我来说不合适。 更新2: 修改为通过类型而不是使用泛型: public static bool Is(this string input, …
196 c#  generics  tryparse 

9
为什么需要在Python方法中显式包含“ self”参数?
在Python中的类上定义方法时,它看起来像这样: class MyClass(object): def __init__(self, x, y): self.x = x self.y = y 但是在某些其他语言(例如C#)中,您可以使用“ this”关键字来引用该方法所绑定的对象,而无需在方法原型中将其声明为参数。 这是Python中的一种故意的语言设计决策,还是有一些实现细节需要传递“ self”作为参数?
196 python  oop  methods  self 

7
在白色上将RGB转换为RGBA
我有一个十六进制颜色,例如#F4F8FB(或rgb(244, 248, 251)),我想将其转换为尽可能透明的 rgba颜色(当显示为白色时)。合理?我正在寻找一种算法,或者至少是一种算法的想法。 例如: rgb( 128, 128, 255 ) --> rgba( 0, 0, 255, .5 ) rgb( 152, 177, 202 ) --> rgba( 50, 100, 150, .5 ) // can be better(lower alpha) 有想法吗? 基于Guffa答案的FYI解决方案: function RGBtoRGBA(r, g, b){ if((g == null) && (typeof r === 'string')){ var hex …
196 javascript  colors  css  rgba 


25
Npm安装找不到模块'semver'
我不能npm install在NodeJS中使用命令提示符。我在运行时遇到这些错误npm install: module.js:339 throw err; ^ Error: Cannot find module 'semver' at Function.Module._resolveFilename (module.js:337:15) at Function.Module._load (module.js:287:25) at Module.require (module.js:366:17) at require (module.js:385:17) at Object.<anonymous> (C:\Users\admin\AppData\Roaming\npm\node_modules\npm\l ib\config\defaults.js:6:14) at Module._compile (module.js:435:26) at Object.Module._extensions..js (module.js:442:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:311:12) at Module.require (module.js:366:17)


9
如何git reset --hard子目录?
更新²:使用Git 2.23(2019年8月)时,有一个新命令git restore可以执行此操作,请参见接受的答案。 更新:从Git 1.8.3开始,这将更加直观,请参阅我自己的答案。 想象一下以下用例:我想摆脱Git工作树的特定子目录中的所有更改,而所有其他子目录保持不变。 我可以git checkout .,但是git checkout。添加稀疏检出排除的目录 有git reset --hard,但不允许我对子目录进行操作: > git reset --hard . fatal: Cannot do hard reset with paths. 再说一遍:为什么git无法按路径进行硬/软复位? 我可以使用来反向修补当前状态git diff subdir | patch -p1 -R,但这是一种很奇怪的方法。 此操作正确的Git命令是什么? 下面的脚本说明了该问题。在How to make files注释下方插入正确的命令-当前命令将恢复a/c/ac稀疏检出排除的文件。请注意,我不希望明确恢复a/a和a/b,我只“知道” a,并希望恢复下的所有内容。编辑:而且我也不知道b,或者其他目录与处于同一级别a。 #!/bin/sh rm -rf repo; git init repo; cd repo for f …


7
React vs ReactDOM?
我有点新反应。我看到我们必须导入两件事才能开始,React并且ReactDOM,谁能解释其中的区别。我正在阅读React文档,但没有说。
196 reactjs  react-dom 


4
C ++标准是否要求iostream的性能较差,或者我只是在处理较差的实现?
每当我提到C ++标准库iostream的性能下降时,我都会感到一阵怀疑。但是,我的探查器结果显示,大量时间花费在iostream库代码(完整的编译器优化)上,从iostream切换到特定于操作系统的I / O API和自定义缓冲区管理确实提高了一个数量级。 C ++标准库正在做什么额外的工作,它是标准所必需的,并且在实践中是否有用?还是某些编译器提供了与手动缓冲区管理竞争的iostream实现? 基准测试 为了使事情顺利进行,我编写了一些简短的程序来练习iostream的内部缓冲: 将二进制数据放入ostringstream http://ideone.com/2PPYw 将二进制数据放入char[]缓冲区http://ideone.com/Ni5ct vector<char>使用http://ideone.com/Mj2Fi将二进制数据放入back_inserter 新功能:vector<char>简单的迭代器http://ideone.com/9iitv 新功能:将二进制数据直接放入stringbuf http://ideone.com/qc9QA 新功能:vector<char>简单的迭代器加边界检查http://ideone.com/YyrKy 请注意,ostringstream和stringbuf版本运行的迭代次数较少,因为它们要慢得多。 在ideone上,其ostringstream速度比std:copy+ back_inserter+ 慢3倍std::vector,比memcpy在原始缓冲区中慢15倍。当我将实际应用程序切换到自定义缓冲时,这感觉与前后分析一致。 这些都是内存中的缓冲区,因此不能将iostream的缓慢归咎于磁盘慢的I / O,过多的刷新,与stdio的同步,或者人们用来掩盖C ++标准库的缓慢的任何其他事情。 iostream。 很高兴看到其他系统上的基准测试以及对常见实现的注释(例如gcc的libc ++,Visual C ++,Intel C ++)以及该标准要求多少开销。 此测试的原理 许多人正确地指出,iostream更常用于格式化输出。但是,它们也是C ++标准提供的唯一用于二进制文件访问的现代API。但是,对内部缓冲进行性能测试的真正原因适用于典型的格式化I / O:如果iostream无法为磁盘控制器提供原始数据,那么当它们负责格式化时又如何保持正常运行呢? 基准时间 所有这些都是外部(k)循环的每次迭代。 在ideone上(gcc-4.3.4,未知的操作系统和硬件): ostringstream:53毫秒 stringbuf:27毫秒 vector<char>和back_inserter:17.6毫秒 vector<char> 普通迭代器:10.6毫秒 vector<char> 迭代器和边界检查:11.4毫秒 char[]:3.7毫秒 在我的笔记本电脑上(Visual C …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.