标签: multithreading swi-prolog thread-priority
我正在Prolog开发一个项目,其中一个线程正在运行GUI,而几个线程(比如说10个)正在后台运行。所有后台线程都将元素添加到列表中。现在,如果某些请求来自GUI,系统需要显示列表中的元素。
我的方法是所有后台线程都将申请锁定列表。获取锁的线程将开始执行。如果请求来自GUI,它也将申请锁定并等待当前线程完成工作。我的问题是如何为GUI线程分配优先级,以便一旦当前线程离开锁定,只有GUI将获得锁定,而不是其他已经申请锁定的9个线程。