private void startPreCacheIfNeeded() {
		if (preCacheThread != null) {
			throw new IllegalStateException("pre-cache thread already active");
		}
		if (!(sourceFile instanceof BufferFileAdapter)) {
			return; // only pre-cache remote buffer files which utilize a BufferFileAdapter
		}
		BufferFileAdapter sourceAdapter = (BufferFileAdapter) sourceFile;
		if (!sourceAdapter.isRemote()) {
			return; // only pre-cache remote buffer files
		}
		synchronized (preCacheLock) {
			preCacheThread = new Thread(() -> preCacheSourceFile());
			preCacheThread.setName("Pre-Cache");
			preCacheThread.setPriority(Thread.MIN_PRIORITY);
			preCacheThread.start();
			preCacheStatus = PreCacheStatus.RUNNING;
		}
	}
Start pre-cache of source file if appropriate.
This targets remote buffer file adapters only.
Ghidra/Framework/DB/src/main/java/db/buffers/BufferMgr.java