Here's one possible solution using the twocolumn class option and figure* and two minipages to typeset the listings (since figure* was used, the listings will appear on the top of the next page):
\documentclass[twocolumn]{article}
\usepackage{listings}
\usepackage{lipsum}
\begin{document}
\lipsum[1-6]
\begin{figure*}
\begin{minipage}[t]{0.5\textwidth}
\begin{lstlisting}
if (i<=0) then i := 1;
if (i>=0) then i := 0;
if (i<>0) then i := 0;
\end{lstlisting}
\end{minipage}%
\begin{minipage}[t]{0.5\textwidth}
\begin{lstlisting}
if (i<=0) then i := 1;
if (i>=0) then i := 0;
\end{lstlisting}
\end{minipage}%
\caption{Two side-by-side listings}
\label{fig:listings}
\end{figure*}
\lipsum[1-6]
\end{document}

And here's now another option: instead of using the twocolumn document option, the multicol package is used to produce the text in two-column mode; the multicols environment is ended, the side-by-side listings are typeset using simple minipages (the caption package was used to produce a possible caption using \captionof), and then another multicols environment begins:
\documentclass{article}
\usepackage{multicol}
\usepackage{listings}
\usepackage{caption}
\usepackage{lipsum}
\begin{document}
\begin{multicols}{2}
\lipsum[1-2]
\end{multicols}
\noindent\begin{minipage}{\textwidth}
\begin{minipage}[t]{0.5\textwidth}
\begin{lstlisting}
if (i<=0) then i := 1;
if (i>=0) then i := 0;
if (i<>0) then i := 0;
\end{lstlisting}
\end{minipage}%
\begin{minipage}[t]{0.5\textwidth}
\begin{lstlisting}
if (i<=0) then i := 1;
if (i>=0) then i := 0;
\end{lstlisting}
\end{minipage}%
\captionof{figure}{Two side-by-side listings}
\label{fig:listings}
\end{minipage}
\begin{multicols}{2}
\lipsum[1-2]
\end{multicols}
\end{document}
In this last option, the usual restriction of multicol with floats apply.
