private void runJob(TableUpdateJob<T> job) {
		synchronized (addRemoveUpdater) {
			// Create a thread to process the pending job
			pendingJob = Objects.requireNonNull(job);

			if (thread != null) {
				return; // if thread exists, it will handle any pending job
			}

			thread = new Thread(threadRunnable,
				"Threaded Table Model Update Manager: " + model.getName());

			thread.start();
			Swing.runLater(notifyUpdating);
		}
	}
Called when there is work to be done.  It creates a thread if none is running to do the
work that is built into the pending job.
Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/ThreadedTableModelUpdateMgr.java