所以昨天我问了一个关于压缩整数序列的问题(链接),大多数评论都有类似的观点:如果顺序是随机的(或者最差的,数据是完全随机的)那么就必须用log2(k)来解决值为k的位.我也在本网站的其他问题中阅读了类似的回复.现在,我希望这不是一个愚蠢的问题,如果我采取该序列并将其序列化为文件然后我在此文件上运行gzip然后我实现压缩(并且根据我允许gzip运行的时间我可能会得到高压缩).有人可以解释这个事实吗?
提前致谢.
我正在为这个问题寻找一个干净的设计/解决方案:我有两个线程,可以在用户想要的时候运行,但最终在用户发出stop命令时停止.但是,如果其中一个线程突然结束(例如,由于运行时异常),我想停止另一个线程.
现在两个线程都执行一个Runnable(所以当我说'停止一个线程'我的意思是我在Runnable实例上调用了一个stop()方法),我在想的是避免使用线程(Thread类)并使用CompletionService接口然后将两个Runnables提交给此服务的实例.
有了这个,我会使用CompletionService的方法take(),当这个方法返回时,我会停止两个Runnables,因为我知道其中至少有一个已经完成.现在,这有效,但如果可能的话,我想知道一个更简单/更好的解决方案.
另外,当我们有n线程时,只要其中一个完成停止执行所有其他线程,什么是一个好的解决方案?
提前致谢.