相关疑难解决方法(0)

设置Java线程的优先级

我有一个程序,运行在几个线程中.主线程与其他线程共享一个对象,在main中我有一个调用:

synchronized(obj){
    do stuff
}
Run Code Online (Sandbox Code Playgroud)

我怀疑主线程是饿死的,无法访问obj.如何提高主线程的优先级或默认情况下它是否已高于其他线程?

java multithreading thread-priority

27
推荐指数
3
解决办法
9万
查看次数

如何使用ThreadPoolExecutor和自定义任务实现PriorityBlockingQueue

我经常搜索,但找不到解决问题的方法.

我有自己的类,BaseTask使用a ThreadPoolExecutor来处理任务.
如果我不想要优先级(即使用a PriorityBlockingQueue),这可以正常工作,但当我尝试使用ClassCastException我得到的ThreadPoolExecutor因为FutureTask将我的任务包装到一个FutureTask对象中.
这显然是可以的,因为Comparable它没有实现newTaskFor(),但我将如何继续解决优先级问题?
我读过您可以覆盖ThreadPoolExecutorBaseTask,但我似乎无法在所有发现这个方法...?

我们欢迎所有的建议!

一些代码可以帮助:

在我的BaseFutureTask班上,我有

private static final BlockingQueue<Runnable> sWorkQueue = new PriorityBlockingQueue<Runnable>();

private static final ThreadFactory sThreadFactory = new ThreadFactory() {
    private final AtomicInteger mCount = new AtomicInteger(1);

    public Thread newThread(Runnable r) {
        return new Thread(r, "AsyncTask #" + mCount.getAndIncrement());
    }
};

private static final BaseThreadPoolExecutor sExecutor = new BaseThreadPoolExecutor(
    1, Integer.MAX_VALUE, …
Run Code Online (Sandbox Code Playgroud)

java priority-queue executor futuretask threadpool

24
推荐指数
4
解决办法
2万
查看次数

什么是JVM调度算法?

我真的很好奇JVM如何与线程一起工作!在我的互联网搜索中,我找到了一些关于RTSJ的资料,但我不知道这是否是我答案的正确方向.我还在sun的论坛http://forums.sun.com/thread.jspa?forumID=513&threadID=472453中找到了这个主题 ,但这并不令人满意.

有人可以给我一些关于JVM调度算法的指示,材料,文章或建议吗?

我也在寻找有关调度程序中Java线程的默认配置的信息,例如"时间切片时每个线程需要多长时间".而这个东西.

我将不胜感激任何帮助 !

谢谢 !

java concurrency multithreading jvm

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