Can one thread stop the other thread ? in the same block?

hi,guys .
Now i want to implement a parallel search or match a keyword .
in the kernel the operations as follows:

if(array[tid]==keyword)
{     
    stop other  threads in the same block;
    other operations;
}
if(not  match)
     do somethings;

I can do this using a flag to judge match or not,but  it needs  __syncthreads(),which will take a lot of time.
Some1 has done somethings like this?or give me some advices.
Any post would be appreciated!!

                austin