• About Us
  • Blog
  • Basket
  • Account
  • Sign In

Java V3.1 Documentation

You are viewing an old version of the documentation. For the latest, please go here: Java V3.2

Multi-Threading - Version 3

In the V3 API providers can no longer be given ThreadPools to speed up an individual match. However, once a provider has been initialised the match method can be called concurrently, giving a speed increase over a range of user agents.

Multi-Threading - Version 2

As of, Multi-Threading can be enabled in the Detector by passing a ThreadPoolExecutor to the Factory, Provider or Reader.Create methods. Note that it is the developer's responsibility to shut down the ThreadPoolExecutor once it is no longer needed for Detection. The ThreadPoolExecutor should not be shut down if a Provider is still using it. If no thread pool is supplied (or if it is null) then single threading will be used instead.

ThreadPoolExecutor threadPool = 

// using a threadpool to create a new provider
Provider p = new Provider(threadPool);

// using a threadpool to create a provider from a Reader method
Provider p = Reader.create("PATH_TO_PREMIUM_DATA", threadPool);

// using a threadpool in a factory that will create multi-threaded providers
Factory factory = new Factory();
factory.initialize("51Degrees.dat", "LICENCE_KEY_HERE", threadPool);