Station | Streaming Address |
---|---|
Cool FM 90.1 | http://equinox.shoutca.st:8938/stream |
iFM 93.9 Manila | http://curiosity.shoutca.st:8098/stream |
90.7 Love Radio Manila | https://manilabr.radioca.st/stream |
Magic 107 | http://curiosity.shoutca.st:8098/stream/1/ |
Star FM Manila 102.7 FM | http://ample-zeno-06.radiojar.com/g1pmt17nz9duv |
YES! FM 101.1 Manila | http://37.59.28.208:8500/stream |
Monster RX 93.1 | http://icecast.eradioportal.com:8000/monsterrx |
Rakista Radio | http://206.190.138.197:8000/stream/1/ |
Month: August 2019
Create an implementation of ThreadFactory to create a thread with custom name for ThreadPoolExecutor as follows:
class MyThreadFactory implements ThreadFactory { private AtomicLong threadCounter; private MyThreadFactory() { threadCounter = new AtomicLong(); } @Override public Thread newThread(Runnable runnable) { var thread=new Thread(runnable); thread.setName(String.join("-","my-thread", String.valueOf(threadCounter.incrementAndGet()))); return thread; } }
The preceding class will generate a thread with the name starting with my-thread. Use the instance of this class in constructing the ThreadPoolExecutor as follows:
var executor = new ThreadPoolExecutor(2, 4, 60L, TimeUnit.SECONDS, new ArrayBlockingQueue<>(100), new MyThreadFactory(), new ThreadPoolExecutor.CallerRunsPolicy());
The preceding declaration creates an instance of ThreadPoolExecutor with 2 core threads, 4 maximum threads, 60 seconds keep alive and supports 100 items in the queue. The queue size is defined by the instance of ArrayBlockingQueue class.
Start all the core threads as follows:
executor.prestartAllCoreThreads();
Using a profiling tool we can search for all the threads whose names starts with my-thread like the following screenshot:
Don't forget to call any shutdown/terminate methods when done using the executor.
If the resource and the module are known, we can use the ModuleLayer to access it like the following snippet.
ModuleLayer.boot().findModule(<MODULE_NAME>).ifPresent(___module -> { try { var modResource = ___module.getResourceAsStream(<RESOURCE_NAME>); } catch (IOException e) { e.printStackTrace(); } });
Where:
MODULE_NAME -> the name of the module that has the resource.
RESOURCE_NAME -> the resource of interest.
Recent Comments