  We present in this paper a generic framework for the analysis of
multi-threaded programs with recursive procedure calls, synchronisation by
rendez-vous between parallel threads, and dynamic creation of new threads. To
this end, we consider a model called Synchronized Dynamic Pushdown Networks
(SDPNs) that can be seen as a network of pushdown processes executing
synchronized transitions, spawning new pushdown processes, and performing
internal pushdown actions. The reachability problem for this model is
unfortunately undecidable. Therefore, we tackle this problem by introducing an
abstraction framework based on Kleene algebras in order to compute an
abstraction of the execution paths between two regular sets of configurations.
We combine an automata theoretic saturation procedure with constraint solving
in a finite domain. We then apply this framework to an iterative abstraction
refinement scheme, using multiple abstractions of increasing complexity and
precision.
