问题描述
- JNI 中多线程创建问题请各位指教
-
大家好,我刚接触JNI开发,遇到一个多线程方面的问题,不知道哪位大神能够帮帮忙。我在看别人写的代码,里面有一段如下:
Int ret_val = 0;
If((smd_dev_up = open(SMD_DEV_UP, O_RDWR)) <= 0)
{
Return -1;
}If((smd_dev_down = open(SMD_DEV_down, O_RDWR)) <= 0)
{
Return -1;
}If(blocking_write)
{
Icotl(smd_dev_up, SMD_PKT_IOCTL_BLOCKING_WRITE, &blocking_write);
Icotl(smd_dev_down, SMD_PKT_IOCTL_BLOCKING_WRITE, &blocking_write);
}其中SMD_DEV_UP被define成 “/dev/encrypt_voice_TX”
SMD_DEV_DOWN被define成 “/dev/encrypt_voice_RX”
SMD_PKT_IOCTL_BLOCKING_WRITE和SMD_PKT_IOCTL_BLOCKING_WRITE是定义的两个设备控制命令。问题:
作者得注释说上面的程序段启动了两个线程,但是我不明白哪里启动了两个线程,是两个open函数吗?在linux下启动线程不是一般应该用pthread_create吗?
解决方案
http://blog.csdn.net/booirror/article/details/37778283
解决方案二:
这段代码好像是没有启动线程,但驱动中处理两个 Icotl 时是不是如作者所说启动了相应的线程,这个只有看到驱动的代码才能知道。
时间: 2024-11-03 21:14:17