React · Frontend system thinking

What is concurrent rendering and what problem does it solve?

Hardconcurrent renderingstartTransitionresponsivenessUpdated Oct 2026
Quiz this track

Short answer

Concurrent rendering lets React prepare updates in an interruptible way. It can pause low-priority work so urgent updates, such as typing, stay responsive. It does not make rendering run in parallel.

Before concurrent rendering, once React started rendering a tree it had to finish before the browser could handle the next urgent interaction. With a concurrent root, React can work on a low-priority update, yield to the browser, and resume later. If a more urgent update arrives, React can abandon the incomplete work and restart with the latest state.

jsx
function SearchPage() {
  const [query, setQuery] = useState("");
  const [results, setResults] = useState([]);
  const [isPending, startTransition] = useTransition();

  function handleChange(event) {
    const next = event.target.value;
    setQuery(next);

    startTransition(() => {
      setResults(filterLargeDataset(next));
    });
  }

  return (
    <div>
      <input value={query} onChange={handleChange} />
      {isPending && <p>Updating results...</p>}
      <Results items={results} />
    </div>
  );
}
The input update is urgent. The expensive filtering update is marked as a transition.

What concurrency changes

  • Rendering can be interrupted and resumed
  • Transitions mark updates as non-urgent
  • React can keep the previous screen visible while new UI is prepared
  • Urgent updates are not blocked behind expensive non-urgent work

Concurrent rendering is not multithreading and does not make a slow calculation fast. The calculation still runs on the main thread; it is simply scheduled differently. Moving truly expensive work to a worker or reducing it is still the right fix.

Transitions only help when the update is handled by React and can be interrupted. Once a synchronous function starts, it still blocks the main thread until it yields.

Follow-ups you should expect

Interviewers use these to check whether the first answer was understanding or memorisation.

  1. 1Does concurrent rendering use multiple threads?
  2. 2What makes an update urgent versus non-urgent?
  3. 3Why does startTransition not speed up a heavy calculation?
  4. 4What is tearing and how does useSyncExternalStore relate to it?

Say it in the interview

Concurrent rendering lets React prepare updates in an interruptible way. It can pause non-urgent work, let the browser handle typing or clicking, and restart with newer state if needed. I use transitions for expensive UI updates that should not block input. It is not parallelism and it does not make slow code faster; it changes scheduling so the interface stays responsive.

Use this as a model, not a script. Saying it in your own words is what makes it survive follow-up pressure.

Related questions

Reading is step one

Now say it out loud.

Understanding an answer and delivering it under pressure are different skills. Rehearse this topic in a live React mock interview and get scored feedback on depth, clarity and confidence.