volatile
Object引用之间是否有任何区别AtomicReference
,如果我只使用get()
和set()
-methods AtomicReference
?
我之前学过Clojure,非常喜欢这门语言.我也喜欢Emacs,并用Emacs Lisp攻击了一些简单的东西.有一件事使我无法在精神上做任何与Elisp有关的事情.这是动态范围的概念.我只是害怕它,因为它对我来说太陌生,闻起来像半全局变量.
因此,对于变量声明,我不知道哪些事情是安全的,哪些是危险的.根据我的理解,使用setq设置的变量属于动态范围(是吗?)让变量怎么样?在某个地方我读过,让你可以做一些简单的词法范围,但在其他地方我读过,让vars也是动态范围的.
我最担心的是我的代码(使用setq或let)意外地从我调用的平台或第三方代码中破坏了一些变量,或者在调用之后我的局部变量意外地搞砸了.我怎么能避免这个?
是否有一些简单的经验法则我可以遵循并确切地知道范围发生了什么,而不会被一些奇怪的,难以调试的方式咬住?
我之前在Clojure中编写了一个小型Swing应用程序,现在我想创建一个Ajax风格的Web应用程序.Compojure现在看起来是最好的选择,所以这就是我要尝试的.
我想要一个真正的小编辑/尝试反馈循环,所以我不希望在每次小改变后重启web服务器.
实现这一目标的最佳方法是什么?默认情况下,我的Compojure设置(使用带有Jetty的ant deps/ant的标准内容)似乎没有重新加载我所做的任何更改.我将不得不重新启动run-server来查看更改.由于Java遗产和系统启动的方式等.这可能是完全正常的,当我从命令行启动系统时应该是这样.
但是,必须有一种方法可以在服务器运行时动态地重新加载内容.我应该使用REPL的Compojure来实现我的目标吗?如果我应该,我怎么重新加载我的东西?
我可以用"Cx o"在窗口之间切换,但是如果我打开了多个帧,我可以在没有鼠标的情况下在它们之间移动吗?
我刚刚意识到这个问题可能听起来没有这个细节的脑风:我在Mac OS X(芬兰语键盘)上并且在同一个应用程序的窗口之间切换很困难.
我刚刚开始研究一个项目,我需要通过pip安装很多依赖项.说明是手动完成所有操作.
在此过程自动化之前我使用了nodejs和maven,并且在项目之间隔离了依赖项.例如,在节点中我可以配置package.json中的所有内容,只需运行npm install ik我的项目目录.
pip有类似的东西吗?
我一直在使用Ruby进行黑客攻击,但我没有做过任何大型或多线程的事情.我听说MRI只支持绿色线程,JRuby通过JVM支持本机线程.但是,我偶然发现了对博客和讨论组的评论,他们说"Rails不是线程安全的"或者Ruby本身不是线程安全的.例如,某人评论说require语句存在问题.这听起来有点基础.
我已经看到很多Java应用程序没有正确处理并发性,我不时对它们做噩梦:-)但至少你可以用Java编写线程安全的应用程序,如果你真的知道你在做什么(它是只是不容易).
这一切听起来都非常惊人,有人可以详细说明 - 究竟是什么问题以及如果是这样的话Rails如何设法工作?我可以编写多线程的Ruby代码,它可以在没有竞争条件和死锁的情况下正常工作吗?它是否可以在JRuby和MRI之间移植,或者我是否必须破解JVM特定代码才能正确利用JVM本机线程?
编辑:
我应该问两个问题,因为人们似乎只回答了rails线程的东西(这本身很好)和绿色线程与本机线程.我对关于线程安全的核心Ruby问题的关注还没有得到解决.在某些情况下,似乎至少存在一个(未解决的?)问题.
ruby multithreading ruby-on-rails jvm-languages thread-safety
我主要使用Eclipse,并且使用NetBeans进行了一些操作.我最缺少的功能是Eclipse的"与编辑器链接",但我没有在NetBeans中找到它.我的想法是,如果我打开"与编辑器链接",编辑器窗口将始终与左侧的树视图同步(在Eclipse中称为"包浏览器").NetBeans中是否有这样的功能?
我正在使用最新版本的SBT(似乎很难弄清楚版本是什么).我想将系统属性传递给我的应用程序,sbt run
如下所示:
sbt -Dmyprop=x run
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做?
我想得到那些使用或评估Coverity静态分析Java代码的人的意见.我知道它在C/C++世界很受欢迎,但是值得花钱进行Java分析还是我最好用PMD,Findbugs和其他开源工具?