小编bri*_*gge的帖子

我应该在一个文件中放多少个类?

我已经习惯了Java模型,你可以在每个文件中拥有一个公共类.Python没有这个限制,我想知道组织类的最佳实践是什么.

python class

265
推荐指数
6
解决办法
9万
查看次数

如何检测脚本是否来源

我有一个脚本,exit如果它被采购我不希望它调用.

我想过检查是否$0 == bash但如果脚本来自另一个脚本,或者如果用户从不同的shell中获取它,则会出现问题ksh.

是否有可靠的方法来检测脚本是否来源?

bash ksh

188
推荐指数
9
解决办法
5万
查看次数

bash字符串相等

bash,等于和双等测试运算符之间有什么区别?

[[ "a" = "a" ]] && echo equal || echo not-equal
[[ "a" == "a" ]] && echo equal || echo not-equal
[[ "a" = "b" ]] && echo equal || echo not-equal
[[ "a" == "b" ]] && echo equal || echo not-equal
Run Code Online (Sandbox Code Playgroud)

结果是:

equal
equal
not-equal
not-equal
Run Code Online (Sandbox Code Playgroud)

bash equality equals

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

如何在Ruby中创建可重用的块/ proc/lambda?

我想创建一个过滤器,并能够将其应用于数组或散列.例如:

def isodd(i)
  i % 2 == 1
end
Run Code Online (Sandbox Code Playgroud)

我希望能够像这样使用它:

x = [1,2,3,4]
puts x.select(isodd)
x.delete_if(isodd)
puts x
Run Code Online (Sandbox Code Playgroud)

这似乎应该是直截了当的,但我无法弄清楚我需要做什么才能让它发挥作用.

ruby

49
推荐指数
3
解决办法
2万
查看次数

Java中并发管道的策略

考虑以下shell脚本:

gzip -dc in.gz | sed -e 's/@/_at_/g' | gzip -c > out.gz 
Run Code Online (Sandbox Code Playgroud)

This has three processes working in parallel to decompress a stream, modify it, and re-compress it. Running time I can see my user time is about twice that of my real time, which indicates the program is effectively working in parallel.

我试图通过将每个任务放在它自己的线程中来用Java创建相同的程序.不幸的是,多线程Java程序仅比上述示例的单线程版本30%.我尝试过使用ExchangerConcurrentLinkedQueue.ConcurrentLinkedQueue链接队列会引起很多争用,尽管所有三个线程通常都处于忙碌状态.交换器的争用较少,但更复杂,并且似乎不会让最慢的工作者在100%的时间内运行.

我试图找出一个纯Java解决方案来解决这个问题,而不是看一个字节代码编织框架或基于JNI的MPI.

大多数并发性研究和API都关注分而治之的算法,使每个节点都能正常工作并且不依赖于先前的计算.另一种并发方法是管道方法,其中每个工作人员完成一些工作并将数据传递给下一个工作人员.

我并不是想找到最有效的方法来获取gzip文件,而是我正在研究如何有效地分解管道中的任务,以便将运行时间减少到最慢的任务.

10米行文件的当前时间如下:

Testing via shell

real    0m31.848s
user    0m58.946s
sys     0m1.694s …
Run Code Online (Sandbox Code Playgroud)

java concurrency performance multithreading

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

如何为自定义类型扩展std :: tr1 :: hash?

如何允许STL实现获取我的自定义类型?在MSVC上,有一个类std::tr1::hash,我可以通过使用来部分专门化

namespace std 
{
    namespace tr1 
    { 
        template <> 
        struct hash<MyType> 
        { ... };
    } 
}
Run Code Online (Sandbox Code Playgroud)

但这是推荐的方式吗?此外,这是否也适用于GCC的实施?因为boost::hash,它足以提供免费功能size_t hash_value (const MyType&),是否有类似的TR1实现?

c++ tr1

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

是否有任何广泛的,现代的Java编码约定?

Sun的" Java编程语言代码约定 "最后更新于1999年4月.十年后,语言和一般使用模式发生了很大变化.是否有更新,广泛采用的标准?

大多数指南都忽略了指定文件编码和行结尾.Sun建议使用混合标签和空格.Eclipse IDE默认使用Eclipse的标准,它只是选项卡.在Maven的风格指南只是空格.许多样式指南,如JBoss,遵循Sun的指导原则,但更喜欢K&R支架而不是OTBS.每个Apache项目都有自己的样式指南,每个项目之间略有不同.

java tabs coding-style

19
推荐指数
4
解决办法
5158
查看次数

Ruby的256色终端库?

是否有像' Term :: ANSIColor '这样的宝石可以使用256色终端?perl脚本256colors2.pl我的终端中运行良好,我想在我的ruby脚本中使用其中一些颜色,而无需手动插入ANSI代码.

ruby gem ansi xterm 256color

12
推荐指数
2
解决办法
4159
查看次数

当我退出shell时,为什么unix后台进程有时会死?

我想知道为什么我在Bash shell的后台进程中看到了不同的行为

案例1:使用Putty(SSH)登录Unix服务器

  • 默认情况下,它使用csh shell
  • 我改成了bash shell
  • 键入睡眠2000&
  • 按回车键

它给了我工作号码.现在我通过点击putty窗口中的x来杀死我的会话现在打开另一个会话并尝试查找进程...该进程已经死亡.

案例2:案例1:使用Putty(SSH)登录Unix服务器默认情况下,它使用csh shell

  • 我改成了bash shell
  • vi mysleep.sh
  • 睡2000和保存mysleep.sh
  • ./mysleep.sh

这里的Diff是..而不是直接执行sleep命令我将sleep命令存储在文件中并执行文件.

现在我通过点击putty窗口中的x来杀死我的会话现在打开另一个会话并尝试查找进程...过程仍然存在

不知道为什么会这样.我认为我需要在bash中使用,即使在注销后也要运行该过程.

在父进程id中看到一个差异.在第二种情况下,sleep 2000的父进程id变为1.看起来只要mysleep.sh的进程死了,内核就将父进程分配给1.

unix bash putty csh nohup

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

PHP是否与|| =运算符等效?

我只想分配一个尚未分配的变量.PHP的做法是什么?

$result = null;
$result ||= check1();
$result ||= check2();
$result ||= "default";
Run Code Online (Sandbox Code Playgroud)

我检查了标准运算符is_null函数,但似乎没有一种简单的方法来执行上述操作.

php

7
推荐指数
3
解决办法
554
查看次数

标签 统计

bash ×3

java ×2

ruby ×2

256color ×1

ansi ×1

c++ ×1

class ×1

coding-style ×1

concurrency ×1

csh ×1

equality ×1

equals ×1

gem ×1

ksh ×1

multithreading ×1

nohup ×1

performance ×1

php ×1

putty ×1

python ×1

tabs ×1

tr1 ×1

unix ×1

xterm ×1