我有一个模块foo,包含util.py和bar.py.
我想在IDLE或python会话中导入它.我该怎么做?
我找不到关于如何导入不在当前目录或默认python PATH中的模块的文档.尝试后import "<full path>/foo/util.py",和from "<full path>" import util
我能得到的最接近的是
import imp
imp.load_source('foo.util','C:/.../dir/dir2/foo')
Run Code Online (Sandbox Code Playgroud)
这给了我在Windows 7上的权限被拒绝.
在java的Observer模式类Observer和Observable中,调用Observable对象的notifyObservers(Object arg0),在不同的线程中,线程安全吗?
示例:我有多个线程,所有Observable,将经常调用notifyObservers(...).所有这些线程都报告给一个Observer对象.
我是否会遇到并发问题,以及解决这个问题的更好方法是什么?我知道使用事件侦听器的可能解决方案.但是我不确定如何实现它,如果可能的话,我想坚持使用Observer模式实现.
当你有这样的代码时会发生什么
lock(myLock)
{
try{
//some code
}catch(SomeException e)
{
throw e;
}
}
Run Code Online (Sandbox Code Playgroud)
myLock会正确发布吗?我有一种情况需要这样做,所以如何编写我自己的Lock,它有一个我可以在try catch的finally方法中调用的显式Release方法.
c#lock关键字是否使用"让步","自旋锁定"或混合方法来处理争用?
到目前为止,我对.net锁定语句的搜索没有找到答案.如果我找到了,我会发布.到目前为止,我所能找到的是什么时候应该使用一个自旋锁...用Mecki接受的措辞很好.
但我正在寻找关于.net/c#的一些明确的答案或文件,如果有人的话.
我已经阅读了很多关于为特定实现选择正确集合的文章,我理解最终它将归结为对真实数据进行基准测试,但是我正忙着这样做:
c#中的哪些排序集合允许修改包含的项目?我似乎无法找到任何?
这是因为修改可能会被实现为删除然后重新插入,从而使显式的"修改"功能毫无意义吗?
我需要一个集合(自定义或标准库),并对其执行以下操作.
目前我使用的是SortedSet,因为它提供了O(logn)插入,但我不清楚删除性能以及如何最好地修改项目.
在java中我记得当jvm退出或类被破坏时,你可以覆盖一些方法来调用,就像一些清理步骤一样?我似乎无法找到它在任何地方被称为什么.任何人都知道它叫什么,我只是找不到它?
我有一列datetime类型,我只想从中检索日期.反正有没有这样做?
以前它是一个epoch值,我将它转换为datetime.
以下是一个示例结果:
smbd|ip address|1082|ip address|"2011-04-26 18:40:34"
Run Code Online (Sandbox Code Playgroud)
我尝试了以下命令,但它产生负/零结果
SELECT DATE(datetime) from attacked_total;
SELECT STRFTIME('%Y-%m-%d', datetime) FROM attacked_total;
SELECT DATETIME('%Y-%m-%d', datetime) FROM attacked_total;
SELECT DATE('%Y-%m-%d', datetime) FROM attacked_total;
Run Code Online (Sandbox Code Playgroud) 我是c#编程的新手,所以请记住:
我有一个内存数据对象,我需要在我的应用程序崩溃或关闭时保存信息.有没有办法确定性地或可靠地做到这一点?
我一直在寻找析构函数
~MyObjectName(){}
Run Code Online (Sandbox Code Playgroud)
终结者和Dispose(),
但据我所知,这些都不能可靠地做到我想要的吗?
目前我正在使用析构函数,它在我关闭程序时起作用,但这并不意味着它将在崩溃或总是工作.
我也应该看一下这些活动吗?
我正在使用Threading.Timer在我的应用程序中运行消息泵.
有时,所需的工作时间比计时器间隔之间的间隔长,我需要"跳过"代码.
我写了一个小测试应用程序进行测试,并在锁定时继续运行SynchronizationLockException:
static void Main(string[] args)
{Program t = new Program();
System.Threading.Timer myTimer = new Timer(t.Tick,null,1000,1000);
Thread.Sleep(10000);
myTimer.Change(0,0);
Console.WriteLine("Waiting on lock in main thread...");
Monitor.Enter(t.myLock);
Console.WriteLine("Done");
Monitor.Exit(t.myLock);
}
public readonly Object myLock = new Object();
public void Tick(object state)
{
Console.WriteLine("Acquiring lock! From thread " + Thread.CurrentThread.ManagedThreadId);
Monitor.TryEnter(myLock);
try
{
Thread.Sleep(6000);
Console.WriteLine("Inside workload!From thread " + Thread.CurrentThread.ManagedThreadId);
}
finally
{
Console.WriteLine("Releasing lock!From thread " + Thread.CurrentThread.ManagedThreadId);
Monitor.Exit(myLock);
}
}
Run Code Online (Sandbox Code Playgroud)
我现在不记得链接,但是我通过在回调函数的开始和结束时禁用和启用计时器找到了我的初始要求的建议解决方案,但是由于文档说明在计时器停止后它可以仍然被调用,因为它已经可以在.NET ThreadPool上安排.
我错过了一些明显的东西,或者监视器不能正常工作吗?我在.NET 3.5上,所以
Monitor.TryEnter(myLock,hasLock)
遗憾的是还不是一个选择.
网络服务器在将数据定期存储在node-sqlite3驱动的数据库中时出现问题。它会工作几次,然后失败
SQLITE_BUSY:数据库已锁定
有时即使没有失败,所有插入操作也都没有完成到数据库中,只在表中保留了一部分插入操作。
setInterval(doInserts,60000);
doInserts() {
calculateData(function(data){
if(data)
{
insertData(data);
}
});
}
function insertData(data) {
var sqlite3 = require("sqlite3").verbose();
//user fs existSync to check if file exists and openSync(file,'w') to create if not
db.serialize(function(){
var stmt = db.prepare("INSERT INTO mytable (col1,col2) values (?,?)");
for(var i =0;i<data.length;i++)
stmt.run(data[0],data[1]);
stmt.finalize();
});
db.close();
}
Run Code Online (Sandbox Code Playgroud)
考虑到我对节点和SQLite都是陌生的,我猜测我以错误的方式使用了某些东西,导致多个开放线程或进程锁定了db,但是没有任何文档或研究使我更接近解决方案。
我有以下代码返回错误"'对象'不包含带x参数的构造函数." 试图调用基础构造函数的行.
解决方案1,项目1
namespace Project.Sub.A
{
internal class Foo
{
internal Foo(int a, long b) {}
}
}
Run Code Online (Sandbox Code Playgroud)
解决方案1,项目2
namespace Project.Sub.B{
internal class Bar : Foo
{
internal Bar(int a, long b,long c) :base(a,b+c) {}
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道为什么这不想工作.可能是我的命名空间配置不正确?
我在文件 myfunc.ps1 中有一个 powershell 函数
function Set-Util ($utilPath ) {
if(Test-Path($utilPath) ){
$fullPath = Join-Path -Path $utilPath "util.exe"
set-alias MyUtil $fullPath
#echo "Path set to $fullPath"
}else {
throw (" Error: File not found! File path '$fullPath' does not exist.")
}
}
Run Code Online (Sandbox Code Playgroud)
我点从命令行调用它
. .\myfunc.ps1
然后打电话
Set-Util somedirectory
别名在函数中设置正确,但我无法在这里访问它
我的实用程序
我应该导出别名,因为范围仅在方法中吗?我尝试使用 Export-ModuleMember 执行此操作,但出现错误,提示该 cmdlet 只能从模块中调用。
c# ×6
locking ×3
.net ×2
java ×2
sqlite ×2
alias ×1
base ×1
big-o ×1
collections ×1
constructor ×1
crash-dumps ×1
database ×1
destructor ×1
exit-code ×1
external ×1
function ×1
import ×1
monitor ×1
node.js ×1
powershell ×1
python ×1
sorted ×1
sql ×1
timer ×1