小编Pio*_*ost的帖子

如何关闭我从未分配给变量的文件对象?

from sys import argv
script, origin, destination = argv

open(destination, 'w').write(open(origin).read())
Run Code Online (Sandbox Code Playgroud)

如何关闭目标和源文件对象?或者这是我不需要担心的事情?

python resources file

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

python中的鼠标滚轮诅咒

有谁知道是否可以在curses中处理鼠标滚轮移动?我想它们应该与箭头键相同。一个例子将不胜感激。

谢谢你。

python curses mousewheel

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

如何在字符串中找到与boost正则表达式匹配的索引?

如何在字符串中找到与boost正则表达式匹配的索引?

c++ boost-regex

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

SharePoint和线程安全

我正在寻找有关SharePoint和线程安全的文章,论坛或博客文章?我非常确定在使用SharePoint对象模型时必须考虑有关线程安全的一些特殊方面.

实际上我还没有找到很多关于此的信息.

所以我很期待你的回答.

再见,弗洛

sharepoint moss multithreading thread-safety

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

boost :: filesystem :: unicode文件路径的路径?

有没有办法使用带有unicode文件路径的boost :: filesystem :: path?特别是我想用std :: wstring代替std :: string.

我正在使用Windows平台,我有时需要处理一个包含unicode char的文件路径.

c++ path boost-filesystem

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

C#关于线程安全的问题

我正在使用线程池进行一些繁重的处理以及一些sql.目前我在需要时打开sql连接,运行查询然后关闭它们.这很好用.该应用程序一直运行没有问题.随着这个应用程序正在做更多的工作,它正在使用更多的线程.更多线程意味着更多SQL连接的打开/关闭.在SQL 2005中,这实际上会破坏服务器.我的测试服务器大约每天执行175次事务.其中大约150个正在master数据库中运行,并且是"ValidateSQLLogin".

我要更改应用程序,以便每个线程都有自己的连接,然后在线程周围传递此连接.

所以我的问题是:

如果SQL连接对象是在线程中本地创建的,然后通过ref传递给另一个类的静态函数,那么这是不安全的吗?

void ThreadA()
{
    SqlConnection a = new SqlConnection(....);
    MyStaticClass.DoStuff(ref a);
}

void ThreadB()
{
    SqlConnection b = new SqlConnection(....);
    MyStaticClass.DoStuff(ref b);
}

static void MyStaticClass.DoStuff(ref SqlConnection sql)
{
    // Do stuff with sql
}
Run Code Online (Sandbox Code Playgroud)

我最初的想法是它不安全,因为10个线程可以同时调用相同的静态函数,每个线程都传递自己的连接对象.

以前,静态函数打开了自己的连接,并在完成后关闭它们.

如果它是不安全的,最好的方法来解决这个问题.我需要尝试最小化Sql连接的打开/关闭.

谢谢

加雷思

c# sql multithreading thread-safety

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

这个多线程用例的最佳数据结构:Intrusive List是否良好?

我需要设计一个支持以下操作的数据结构:

  • 数据结构中的搜索元素基于作为间隔的键.例如,间隔1-5内的值可以是3,从6-11可以是5,依此类推.间隔是连续的,它们之间没有重叠.
  • 找到上一个和下一个间隔 - 这几乎与搜索间隔一样频繁.
  • 分割间隔,连接连续间隔
  • 并发:我已将设计限制为一个编写器线程和其他读取器线程,如下所示.写入程序线程可以拆分或连接间隔,或修改间隔中的值.任何读者线程只在一个时间间隔内读取值(读者可以读取多个时间间隔,但是我不必序列化所有读取 - 可以在两次读取之间进行写入).每次写入每个读取器大约有20-80个读取.此外,我仍然需要决定读者的数量,但它将在2-8左右.

我考虑使用list来添加和删除中间的元素.只有有限的间隔 - 所以可能使用地图是不对的.STL列表不能很好地支持这种访问(一个编写器,多个读取器).boost :: intrusive :: list似乎合适.在侵入列表的顶部,我将不得不获取锁来读/写间隔.

此外,我理解侵入列表可用于比STL列表更好的缓存局部性(以及对所包含对象的适当内存分配).

方法好吗?如果是,我也有兴趣了解您使用intrusive :: list的经验,特别是对于多线程应用程序.

c++ multithreading boost thread-safety

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

在持有boost :: interprocess :: scoped_lock时睡眠会导致它永远不会被释放

我做IPC Linux的使用boost::interprocess::shared_memory_object按照基准(匿名互斥体示例).

有一个服务器进程,它创建shared_memory_object并写入它,同时保持interprocess_mutex包裹在scoped_lock; 和客户端进程打印其他人写的任何内容 - 在这种情况下,它是一个int.

我遇到了一个问题:如果服务器在持有互斥锁的情况下休眠,则客户端进程永远无法获取它并永远等待.

越野车服务器循环:

using namespace boost::interprocess;
int n = 0;
while (1) {
    std::cerr << "acquiring mutex... ";
    {
        // "data" is a struct on the shared mem. and contains a mutex and an int
        scoped_lock<interprocess_mutex> lock(data->mutex);
        data->a = n++;
        std::cerr << n << std::endl;
        sleep(1);
    } // if this bracket is placed before "sleep", everything works
}
Run Code Online (Sandbox Code Playgroud)

服务器输出: …

c++ linux mutex ipc boost-interprocess

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

我应该对使用boost :: archive感到谨慎吗?

我想使用boost :: archive :: iterators :: base64_from_binary.但我似乎无法弄清楚为什么它存在于"存档"之下.这意味着什么?我是否应该因为任何原因而使用此代码?

谢谢 -

c++ base64 boost-serialization

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

连续应用两个显式类型转换的原因是什么?

应用两个显式类型转换的原因是什么?

if (unlikely(val != (long)(char)val)) {
Run Code Online (Sandbox Code Playgroud)

代码取自lxml源代码包中的lxml.etree.c源文件.

c++ casting

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