栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

OSX:JavaVM,AWT / Swing以及可能出现死锁

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

OSX:JavaVM,AWT / Swing以及可能出现死锁

通过查看Eclipse项目如何创建启动器,我能够解决此问题。完成后,您需要为JVM生成一个单独的线程,但是main方法需要启动CFRunLoop。

您的特定实现可能还有一些其他细节,但是在我们的案例中,与此类似的东西目前正在起作用:

...#include <CoreServices/CoreServices.h>static void dummyCallback(void * info) {}......if (stack_size > 0) {    pthread_attr_setstacksize(&thread_attr, stack_size);}CFRunLoopRef loopRef = CFRunLoopGetCurrent();pthread_create(&vmthread, &thread_attr, startJava, (void *)&thread_data_struct);pthread_attr_destroy(&thread_attr);CFRunLoopSourceContext sourceContext = {    .version = 0, .info = NULL, .retain = NULL, .release = NULL,   .copyDescription = NULL, .equal = NULL, .hash = NULL,    .schedule = NULL, .cancel = NULL, .perform = &dummyCallback };CFRunLoopSourceRef sourceRef = CFRunLoopSourceCreate(NULL, 0, &sourceContext);CFRunLoopAddSource(loopRef, sourceRef,  kCFRunLoopCommonModes);        CFRunLoopRun();CFRelease(sourceRef);...

您可以在此处浏览Eclipse实现:

http://git.eclipse.org/c/equinox/rt.equinox.framework.git



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/419415.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号