add async cut which use multi thread to get rid of block
add test