标签: interprocess

erlang进程间锁机制(如flock)

Erlang是否有一个进程间(我的意思是Linux或Windows进程)锁机制,如flock?

用法如下:

  • Erlang服务器开始为存储库提供服务,并放置文件锁(或其他)
  • 如果另一个OS进程(另一个Erlang服务器或命令行Erlang脚本)与repo交互,则文件锁会警告可能的冲突

erlang flock interprocess

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

进程间通信和BroadCasting

我正在进行一个进程间通信.我遇到了命名管道通信.

我已经有了一些基本的想法,但需要确保以下几点?

  1. 名称管道是否可以同时拥有多个客户端?

  2. 它是否支持通过不同语言构建的不同流程进行通信.

请告诉我,命名管道通信和进程间通信广播有什么区别?

c# named-pipes broadcasting interprocess

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

Linux进程间可重入信号量

我正在将Windows应用程序移植到Linux,我遇到了同步问题.

在Windows中,我使用系统级别的名为mutex来同步对共享内存块的访问.

我如何在Linux中模拟它?我使用semget创建了一个SystemV信号量.问题是它不是可重入的,如果我已经持有它会阻塞,不像在Windows上.我可以为它添加一个引用计数,但是我需要同步访问它,这意味着另一个(这次只适用于当前进程)互斥.

是否有某个类提供了可重入的进程间锁(可能在Boost中)?

顺便说一句,使用文件锁是不可接受的,因为它可能太慢(我需要在两个进程之间进行超低延迟通信).

c c++ linux semaphore interprocess

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

在RMI服务器中执行启动rmiregistry是一个好主意吗?

放入Runtime.getRuntime().exec("start rmiregistry");RMI服务器自动启动rmiregistry 是一个好主意吗?或者你们有其他建议吗?

java ipc rmi interprocess

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

使用boost named_semaphore的代码中的错误

我会在共享内存中保留一些数据,使用命名信号量来管理访问:

#include <boost/interprocess/sync/named_semaphore.hpp>

struct shared_memory_buffer
{
    // Application data
    int  items[10];

    // Synchronization data
    boost::interprocess::named_semaphore  syncSem;

    shared_memory_buffer()
    : syncSem(boost::interprocess::open_or_create_t, "testSemaphore", 0)   // error
    {}
};
Run Code Online (Sandbox Code Playgroud)

但是,我在指定的行得到以下编译时错误:

error: expected primary-expression before ‘,’ token
Run Code Online (Sandbox Code Playgroud)

这是我的系统:

MacOS X 10.6

i686-apple-darwin10-g ++ - 4.2.1(GCC)4.2.1(Apple Inc. build 5664)

提升1.44

谢谢!

c++ boost semaphore interprocess

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

boost :: interprocess - std :: string vs. std :: vector

我使用boost :: interprocess :: managed_(windows_)shared_memory :: construct来构造一个包含自己类的进程间向量,它有一个类型为std :: string的成员变量和另一个类型为std :: vector的成员变量,所以:

class myclass
{
    public:
        myclass()
        {

        }

        std::string _mystring;
        std::vector < int > _myintvector;
};

template < class _type >
struct typedefs
{
    typedef boost::interprocess::managed_windows_shared_memory     _memory;
    typedef _memory::segment_manager                               _manager;
    typedef boost::interprocess::allocator < _type, _manager >     _allocator;
    typedef boost::interprocess::vector < _type, _allocator >      _vector;
};

typedef typedefs < myclass > tdmyclass;

int main ()
{
    using namespace boost::interprocess;

    managed_windows_shared_memory mem ( open_or_create, "mysharedmemory", 65536 );
    tdmyclass::_vector * vec = mem.construct …
Run Code Online (Sandbox Code Playgroud)

c++ boost stl interprocess

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

Win32:如何将消息发布到Windows中不同用户运行的进程?

我们运行两个应用程序,每个应用程序使用RegisterWindowMessage()注册相同的消息:作为常规用户的应用程序A和作为管理员的应用程序B在机器上的同一用户会话中,这些应用程序将此消息一个发送到另一个.当A和B作为同一个用户运行时,一切都很好,我们能够使用PostMessage()消息进行通信.现在,由于应用程序B作为管理员消息运行,因此不再进行任何操作.我们对于它可以做些什么呢?

这种情况是否要求我们使用其他机制(消息除外)?

winapi ipc window-messages interprocess inter-process-communicat

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

如何打印出子进程使用C#打印的值?

正如问到这个职位,我可以使用Python subprocess.Popen()函数来运行Ruby的代码打印出来的值.

import subprocess
import sys

cmd = ["ruby", "/Users/smcho/Desktop/testit.rb"]
p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
for line in iter(p.stdout.readline, ''):
    print line, 
    sys.stdout.flush() 
p.wait()
Run Code Online (Sandbox Code Playgroud)

我怎么能用C#做同样的事情?如何打印子进程打印出来的值?

c# subprocess interprocess

0
推荐指数
1
解决办法
2668
查看次数

在新流程中开始的活动与原始活动有什么区别

今天,我遇到了一个关于共享数据进程间的奇怪问题。我声明MainActivity运行在另一个进程中,将TestApplication中的共享数据写为1,然后启动SubActivity来展示共享数据。不幸的是,SubActivity中显示的值仍然为0,因此我们得出结论,在两个进程中填充了两个TestApplication实例,并且共享数据的读写是相互独立的。实际上,共享数据不再在进程间共享。我的问题是在新进程中开始的活动与原始活动之间的另一个区别是什么,例如关于内存?这是我的代码:

<application
        android:name=".TestApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
<activity android:name=".MainActivity"
            android:process="com.rlk.miaoxinli.hellokitty"
            >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".SubActivity">

        </activity>
    </application>


public class TestApplication extends Application {

    public int mValue = 0;
}


public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private TextView mTextView;
    private TestApplication mApplication;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mApplication = (TestApplication) getApplication();

        setContentView(R.layout.activity_main);
        mTextView = (TextView)findViewById(R.id.first);
        mApplication.mValue = 1;

        mTextView.setClickable(true);
        mTextView.setOnClickListener(this);
    }

    @Override
    protected void onResume() {
        super.onResume();
        mTextView.setText("" …
Run Code Online (Sandbox Code Playgroud)

android multiprocessing interprocess android-manifest android-activity

0
推荐指数
1
解决办法
527
查看次数

使用和不使用 exec 重定向之间的区别

任何人都可以澄清以下之间的明确区别:

 3<&0
Run Code Online (Sandbox Code Playgroud)

 exec 3<&0
Run Code Online (Sandbox Code Playgroud)

bash 或其他类似的 shell?之前谢谢

bash interprocess

0
推荐指数
1
解决办法
61
查看次数